![为什么 sar 输出不匹配?](https://linux22.com/image/798010/%E4%B8%BA%E4%BB%80%E4%B9%88%20sar%20%E8%BE%93%E5%87%BA%E4%B8%8D%E5%8C%B9%E9%85%8D%EF%BC%9F.png)
我正在使用 sar 实用程序来收集和保存系统活动信息。保存信息后,我看到/报告了信息,但输出不匹配。有人能帮我理解这种行为吗,或者我是否在理解上犯了一个愚蠢的错误。以下是详细信息。
步骤 1:收集并保存系统活动
sar -o sa_30_dec_2012 1 > /dev/null 2>&1 &
步骤 2:以 1 秒为间隔报告前 10 分钟的读数
sar 1 10 -f sa_30_dec_2012
步骤 3:每隔 2 秒报告前 10 个读数
sar 2 5 -f sa_30_dec_2012
步骤 2 的输出
07:18:34 IST CPU %user %nice %system %iowait %steal %idle
07:18:35 IST all 1.51 0.00 1.51 3.02 0.00 93.97
07:18:36 IST all 1.50 0.00 1.00 0.00 0.00 97.50
07:18:37 IST all 1.02 0.00 0.51 0.00 0.00 98.48
07:18:38 IST all 2.55 0.00 0.51 0.00 0.00 96.94
07:18:39 IST all 3.03 0.00 0.51 0.00 0.00 96.46
07:18:40 IST all 1.49 0.00 1.49 3.48 0.00 93.53
07:18:41 IST all 1.52 0.00 0.51 0.00 0.00 97.97
07:18:42 IST all 1.01 0.00 1.01 0.00 0.00 97.99
07:18:43 IST all 1.53 0.00 0.00 0.00 0.00 98.47
07:18:44 IST all 2.53 0.00 1.52 0.00 0.00 95.96
Average: all 1.77 0.00 0.86 0.66 0.00 96.72
步骤 3 的输出
07:18:34 IST CPU %user %nice %system %iowait %steal %idle
07:18:36 IST all 1.50 0.00 1.25 1.50 0.00 95.74
07:18:38 IST all 1.78 0.00 0.51 0.00 0.00 97.71
07:18:40 IST all 2.26 0.00 1.00 1.75 0.00 94.99
07:18:42 IST all 1.26 0.00 0.76 0.00 0.00 97.98
07:18:44 IST all 2.03 0.00 0.76 0.00 0.00 97.21
Average: all 1.77 0.00 0.86 0.66 0.00 96.72
如果您观察,时间戳 07:18:36 的读数匹配,但此后的读数不匹配(值不相等)。例如,以下时间戳的值不相等:-
步骤2输出
07:18:38 IST all 2.55 0.00 0.51 0.00 0.00 96.94
07:18:40 IST all 1.49 0.00 1.49 3.48 0.00 93.53
步骤3输出
07:18:38 IST all 1.78 0.00 0.51 0.00 0.00 97.71
07:18:40 IST all 2.26 0.00 1.00 1.75 0.00 94.99
为什么步骤 2 和步骤 3 的输出不匹配?
这些命令在 Ubuntu 12.04 LTS 上执行。
很感谢任何形式的帮助。
答案1
由于间隔改为 2 秒,因此它会对这两秒的数据取平均值。如果我们从第一个输出中取出两行(两个 1 秒间隔):
07:18:34 IST CPU %user %nice %system %iowait %steal %idle
...
07:18:37 IST all 1.02 0.00 0.51 0.00 0.00 98.48
07:18:38 IST all 2.55 0.00 0.51 0.00 0.00 96.94
%user(第 4 列)平均为 1.78 -> (1.02 + 2.55)/2=1.78
。其他所有列也是如此。
07:18:38 IST all 1.78 0.00 0.51 0.00 0.00 97.71