如何一次性获取 CPU 总体使用率和单个核心使用率信息?

如何一次性获取 CPU 总体使用率和单个核心使用率信息?

是否有一个命令可以以静态方式(即仅一次)显示 CPU 使用信息(包括整体 CPU 和单个内核),类似于如何free显示内存使用信息?

当我们运行时top,点击后顶部的 cpu 信息1显示单个核心使用情况以及整体 cpu 使用情况可能就是我想要的。但top 默认情况下动态更新信息,并输出比我需要的更多信息(内存和每个进程信息)。

谢谢。

答案1

有一个命令可以动态显示处理器相关的运行时统计信息,称为 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最终对于建立长期模式和基线更有用。

推论:不要用cronmpstatsar

答案2

top -bn 1

设置好你的顶级 rc 后;

top
1
W
q

grep 你想要什么

top -bn 1 | grep -P "^(%|top)"

对于像这样的输出

top - 11:40:33 up 24 days, 32 min,  1 user,  load average: 0.00, 0.00, 0.00
 %Cpu0  :  0.0 us,  1.2 sy,  0.0 ni, 98.1 id,  0.1 wa,  0.3 hi,  0.2 si,  0.0 st
 %Cpu1  :  0.0 us,  0.9 sy,  0.0 ni, 98.9 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
 %Cpu2  :  0.0 us,  0.8 sy,  0.0 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
 %Cpu3  :  0.0 us,  0.8 sy,  0.0 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
 %Cpu4  :  2.0 us,  2.0 sy,  0.2 ni, 93.0 id,  2.3 wa,  0.2 hi,  0.3 si,  0.0 st
 %Cpu5  :  0.9 us,  3.0 sy,  0.1 ni, 94.8 id,  0.8 wa,  0.3 hi,  0.1 si,  0.0 st
 %Cpu6  :  0.2 us,  2.6 sy,  0.0 ni, 96.4 id,  0.4 wa,  0.2 hi,  0.1 si,  0.0 st
 %Cpu7  :  0.1 us,  1.0 sy,  0.1 ni, 98.4 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st

相关内容