我知道这个sar sar -u 1 3
例子,它给出了下一个3秒的统计数据,间隔为1秒。
不过sar也不断的在后台收集信息(我的cron设置为每分钟收集一次数据)。 有什么办法可以简单地使用sar命令来查询最后5分钟的统计数据和平均数。
现在我正在使用下面的命令
interval=5; sar -f /var/log/sysstat/sa22 | tail -n $interval | head -n -1 | awk '{print $4+$6}'| awk '{s+=$1} END {print s/$interval}'
在最近5分钟内检查整体CPU使用情况。
有没有更好的办法 ?
不幸的是,在sar中使用-f选项时,如果与interval和count一起使用,则不会返回给定间隔的平均值(如您所期望的那样)。 相反,它总是返回sar文件中的第一个记录值
解决此问题的唯一方法是使用-s选项,该选项允许您指定开始采样周期的时间。 我在下面提供了一个perl脚本,完成时调用了sar,这个sar的构造方式将返回你正在寻找的东西。
希望这可以帮助。
彼得·罗德斯。
#!/usr/bin/perl $interval = 300; # seconds. $epoch = `date +%s`; $epoch -= $interval; $time = `date -d \@$epoch +%H:%M:00`; $dom = `date +%d`; chomp($time,$dom); system("sar -f /var/log/sysstat/sa$dom -B -s $time 300 1");