Cpu

了解 ARM 多核電腦上的 top 命令輸出

  • March 22, 2016

top在執行瀏覽器時執行命令以檢查 New RPi3 上的 CPU 性能和記憶體使用情況。

既然我們有一個4× ARM Cortex-A53, 1.2GHz,我應該如何閱讀結果?

$ top

Mem: 327132K used, 620864K free, 29124K shrd, 5800K buff, 164492K cached
CPU:  80% usr   8% sys   0% nic   2% idle   0% io   0% irq   9% sirq
...
  • 80% 不完善的流程
  • 8% 系統程序
  • 2% 閒置?

我的理解是,當它顯示 80% 時,這意味著 400% 滿容量中的 80%,因為我們有 4 個核心,對嗎?

這是否意味著該top命令沒有idle正確計算?

如何檢查每個核心的百分比使用/空閒?

我的 Linux(使用 Yocto 為 RPi3 建構的映像)

root@raspberrypi3:~# uname -a
Linux raspberrypi3 4.1.18 #1 SMP Thu Mar 17 10:26:07 CET 2016 armv7l GNU/Linux

root@raspberrypi3:~# lsb_release -a
LSB Version:    core-4.1-noarch:core-4.1-arm
Distributor ID: poky
Description:    Poky (Yocto Project Reference Distro) 1.8.1
Release:    1.8.1
Codename:   fido

top版本

root@raspberrypi3:~# top --version
top: unrecognized option '--version'
BusyBox v1.23.1 (2015-10-19 16:33:36 CEST) multi-call binary.

Usage: top [-b] [-nCOUNT] [-dSECONDS]

根據 的版本top,CPU 使用率摘要可能使用 100% 來表示一個核心的價值或表示總可用 CPU。鑑於您的輸出,您似乎正在使用 BusyBox 版本的top; 它使用 100% 來表示總可用 CPU 時間,因此您的 CPU 非常忙碌,大約 80% 的時間用於計算,大約 19% 的時間用於 I/O。每個程序的條目還提供了與整個可用處理能力相關的統計資訊,因此在四核機器上,每個執行緒的最高處理率為 25%。

procps的top版本(非嵌入式 Linux 上的版本,也是例如 Raspbian 上的預設版本)使用不同的約定:對於全域 CPU 消耗,100% 是跨 CPU 的總數;但是對於每個程序,100% 意味著一個 CPU 的價值。

htop有一個更好的界面,可以分解每個 CPU 的 CPU 使用率。在那裡你會看到每個 CPU 的使用率。在單個程序上,htop 將一個 CPU 的價值計算為 100%,就像 procps 版本一樣。

請記住,計算並不精確,它們是基於抽樣的。(進行精確的 CPU 使用率測量本身會佔用大量 CPU 時間,尤其是在高爭用情況下。) 2% 空閒和完全忙碌之間沒有顯著差異。

引用自:https://unix.stackexchange.com/questions/271355