Top

如何一次獲得 CPU 整體使用情況和單個核心使用情況資訊?

  • February 16, 2019

是否有一個命令可以以類似於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 使用率報告。

如果你對這個話題感興趣,我推薦這本書:

系統性能:企業和雲,Brendan Gregg

PS 雖然mpstat在短期內非常有用,但sar也與sysstat.

推論:不要cron使用mpstat,使用sar

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