vmstat 在第一次运行时未返回正确的值

vmstat 在第一次运行时未返回正确的值

我在 ubuntu linux 上使用vmstat来获取 cpu 使用情况。我当前的CPU 非常繁忙,几乎达到100%。如果我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
 8  1      0 6383924 1287224 18123836    0    0     2    53    2   16  1  1 98  0  0

显示CPU空闲率为98%。但如果我延迟运行它并按如下方式计数:

$ vmstat 2 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 5  1      0 6491296 1287268 18128956    0    0     2    53    3   17  1  1 98  0  0
 4  1      0 6491992 1287268 18129080    0    0     0  2264 11142 17980 98  2  0  0  0

从第二次开始它显示正确的CPU使用率。我的问题是为什么它第一次运行时无法输出正确的值。

答案1

来自man vmstat(我添加的粗体强调):

概要

vmstat [options] [delay [count]]

描述

vmstat 报告有关进程、内存、分页、块 IO、陷阱、磁盘和 CPU 活动的信息。

生成的第一份报告给出了自上次重启以来的平均值。

其他报告提供有关长度延迟的采样周期的信息。无论哪种情况,进程和内存报告都是即时的。

选项

delay 更新之间的延迟(以秒为单位)。 如果未指定延迟,则仅打印一份报告,其中包含自启动以来的平均值。

count 更新次数。在没有计数的情况下,定义延迟时,默认为无限。

[...]

相关内容