Cpu
了解 ARM 多核電腦上的 top 命令輸出
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% 空閒和完全忙碌之間沒有顯著差異。