vmstat消耗了大部分CPU的功耗

当我发出没有任何参数的vmstat命令时,我得到这个结果:

# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ rb 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%。 无论我发出命令多less次,我都会得到类似的结果。

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

 # vmstat 5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ rb 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能力(服务器有32x Inter Xeon X7550 CPU,每个都有两个2核心和2个线程)。

有人可以给我一个关于这个%80 Cpu电源的线索吗?

从手册页:

如果没有指定延迟,那么只有一个报告打印自启动以来的平均值。

您将机器启动以来的平均闲置时间(92%)与五秒钟间隔(10-12%)进行比较,这是没有意义的。