vmstat 消耗了大部分 CPU 电量

vmstat 消耗了大部分 CPU 电量

当我发出不带任何参数的 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 功率的线索吗?

答案1

从手册页中:

如果没有指定延迟,则仅打印一份包含自启动以来的平均值的报告。

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

相关内容