“sar”和“iostat”命令之间的区别

“sar”和“iostat”命令之间的区别

通过sariowait,我们可以获得 CPU 时间利用率。但是,当我执行这两个命令时,我可以看到它们的输出存在显着差异。

 > iostat && sar 1 1
Linux 2.6.32-042stab090.4 (LinuxBox)     08/14/2014      _x86_64_        (16 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.46    0.00    0.52    0.07    0.00   98.95

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              10.53       760.66        44.67 3464410204  203460004
sdb               2.49       368.15       779.18 1676748162 3548769968
sdc               4.09       192.81        10.71  878170395   48792907

Linux 2.6.32-042stab090.4 (LinuxBox)     08/14/2014      _x86_64_        (16 CPU)

10:35:21 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:35:22 AM     all      0.00      0.00      0.06      0.00      0.00     99.94
Average:        all      0.00      0.00      0.06      0.00      0.00     99.94

我很难决定哪个输出更可靠。哪一个命令应该被认为是更准确的?

答案1

您正在运行 iostat,但没有给出任何间隔。因此,它将报告自启动以来的统计信息。

而对于 sar,您提到了 1 个间隔。这意味着在 sar 报告中,报告的是最后 1 秒。

两者都用于/proc/获取这些报告,其中所有这些值都存储为计数器(不时增加)。您可以从手册页中阅读更多有关这些报告使用的文件系统的信息(滚动到手册页的末尾)。如果您不明白我的观点,还请阅读有关计数器的内容。

然后,通过了解任意两个时间点的值并计算这两个时间点的值的差异来获得报告。因此,如果未指定间隔,因为只有 1 个时间点(即您运行命令的时间),并且它会将启动时间视为其他时间点。这就是为什么你会得到自启动时间以来的平均值。

相关内容