1

当我发出不带任何参数的 vmstat 命令时,我得到以下结果:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
7 117      0 719328 1251624 258624672    0    0   346    64    0    0  4  0 92  3  0

如您所见,cpu 空闲率为 92%。无论我发出多少次命令,我都会得到类似的结果。

但是当我发出带有时间间隔参数的 vmstat 时,cpu 空闲值立即下降:

# vmstat 5        
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
385  0      0 145380064 1457188 115708528    0    0   346    64    0    0  4  0 92  3  0
417  0      0 144694256 1457204 116388928    0    0     0    49 1122 528500 84  5 12  0  0
413  0      0 143960640 1457220 117117040    0    0     0    31 1127 529619 84  5 11  0  0
418  0      0 143224224 1457228 117850080    0    0     0    26 1114 530135 84  5 11  0  0
444  0      0 142483520 1457240 118587048    0    0     0    33 1112 530314 84  5 11  0  0
397  0      0 141820240 1457256 119245040    0    0     0    37 1114 531348 85  5 10  0  0

这里是!即使我在 5 秒间隔内得到结果,cpu 空闲值也会下降大约 80%!

我无法想象 vmstat 本身是否会消耗这么多 CPU 功率(服务器有 32 个 Inter Xeon X7550 CPU,每个 CPU 有两个 2 核和 2 个线程)。

有人能告诉我我失去的 %80 Cpu 电源吗?

4

2 回答 2

7

vmstat 输出的第一个统计数据为您提供自机器上次启动以来的平均统计数据(无论您是否指定时间延迟)。当您指定时间延迟时,后续统计信息会显示每个间隔之间的机器统计信息。例如,假设您指定 5 秒的时间延迟,第一个统计信息会显示自机器上次启动以来的统计信息。第二个统计数据在报告第一个统计数据 5 秒后向您显示该统计数据。第 3 个统计数据显示您在第 2 个统计数据 5 秒后的统计数据。

于 2012-10-02T13:45:03.260 回答
1

从手册页:

If no delay is specified, 
only one report is printed with the average values since boot.
于 2012-08-03T13:39:47.927 回答