当我发出没有任何参数的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 idle是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功率(服务器有32x Inter Xeon X7550 CPU,每个CPU有两个2核和2个线程)。
有人能给我一个关于我松散的%80 Cpu功率的线索吗?
答案 0 :(得分:7)
vmstat的第一个stat输出为您提供自机器上次启动以来的平均值(无论您是否指定时间延迟)。指定时间延迟时,后续统计信息会显示每个间隔之间的机器状态。例如,假设您指定5秒的延时,则第一个统计数据会显示自机器上次启动以来的状态。第二个统计数据显示报告第一个统计数据后5秒的统计数据。第3次统计显示第2次统计后5秒钟的统计数据。
答案 1 :(得分:1)
从手册页:
If no delay is specified,
only one report is printed with the average values since boot.