Top
如何一次獲得 CPU 整體使用情況和單個核心使用情況資訊?
是否有一個命令可以以類似於
free
顯示記憶體使用資訊的靜態方式(即僅一次)顯示 CPU 使用資訊(包括整體 cpu 和單個核心)?當我們執行
top
時,點擊後頂部的 cpu 資訊1
顯示單個核心使用情況以及整體 cpu 使用情況可能是我想要的。但top
預設情況下會動態更新資訊,並輸出比我需要的更多資訊(記憶體和每個程序資訊)。謝謝。
有一個命令可以動態顯示與處理器相關的執行時統計資訊,稱為
mpstat
. 在大多數發行版中,它是sysstat
軟體包的一部分。雖然它的輸出可以更直接地回答您的問題
mpstat -P ALL -I CPU
,但我更喜歡 的輸出mpstat -P ALL
,它更易於理解。例如,具有 40 個 CPU 的機器的輸出:
Linux 3.0.101-63-default 02/16/19 _x86_64_ 09:52:11 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 09:52:11 all 0.04 0.00 0.04 0.02 0.00 0.00 0.00 0.00 99.90 09:52:11 0 0.13 0.00 0.13 0.57 0.00 0.00 0.00 0.00 99.16 09:52:11 1 0.24 0.00 0.49 0.07 0.00 0.00 0.00 0.00 99.21 09:52:11 2 0.04 0.00 0.03 0.00 0.00 0.00 0.00 0.00 99.94 09:52:11 3 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.95 09:52:11 4 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.97 09:52:11 5 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 6 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 7 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.97 09:52:11 8 0.01 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 9 0.01 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 10 0.12 0.00 0.10 0.19 0.00 0.00 0.00 0.00 99.59 09:52:11 11 0.09 0.00 0.06 0.01 0.00 0.00 0.00 0.00 99.84 09:52:11 12 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.94 09:52:11 13 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.94 09:52:11 14 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.95 09:52:11 15 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.95 09:52:11 16 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.95 09:52:11 17 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.95 09:52:11 18 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 19 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.95 09:52:11 20 0.06 0.00 0.06 0.01 0.00 0.00 0.00 0.00 99.87 09:52:11 21 0.19 0.00 0.27 0.01 0.00 0.00 0.00 0.00 99.54 09:52:11 22 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.97 09:52:11 23 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 24 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.97 09:52:11 25 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.97 09:52:11 26 0.01 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 27 0.01 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 28 0.01 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 29 0.01 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98 09:52:11 30 0.04 0.00 0.04 0.00 0.00 0.00 0.00 0.00 99.92 09:52:11 31 0.03 0.00 0.03 0.00 0.00 0.00 0.00 0.00 99.94 09:52:11 32 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 33 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 34 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 35 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 36 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 37 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 38 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 99.96 09:52:11 39 0.03 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.96
從
man mpstat
mpstat 命令為每個可用處理器寫入標準輸出活動,處理器 0 是第一個。還報告了所有處理器之間的全球平均活動。mpstat 命令可以在 SMP 和 UP 機器上使用,但在後者中,只會列印全域平均活動。如果未選擇任何活動,則預設報告是 CPU 使用率報告。
如果你對這個話題感興趣,我推薦這本書:
PS 雖然
mpstat
在短期內非常有用,但sar
也與sysstat
.推論:不要
cron
使用mpstat
,使用sar
。