Linux 如何使用SAR检查最近5分钟的总体cpu使用情况

Linux 如何使用SAR检查最近5分钟的总体cpu使用情况,linux,performance,monitoring,sar,Linux,Performance,Monitoring,Sar,我知道这个sarsar-u13的例子,它以1秒的间隔提供接下来3秒的统计数据 然而,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

我知道这个sar
sar-u13
的例子,它以1秒的间隔提供接下来3秒的统计数据

然而,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的调用结束,该调用的构造方式将返回您所寻找的内容

希望这有帮助

彼得·罗德斯

#/usr/bin/perl
$interval=300;#秒。
$epoch=`date+%s`;
$epoch-=$interval;
$time=`date-d\@$epoch+%H:%M:00`;
$dom=`date+%d`;
chomp($time,$dom);
系统(“sar-f/var/log/sysstat/sa$dom-B-s$time3001”)