如何使用SAR检查最后5分钟的整体CPU使用率

Ank*_*rni 5 linux performance monitoring sar

我知道这个sar的例子,sar -u 1 3它以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}' 
Run Code Online (Sandbox Code Playgroud)

检查最近5分钟的整体CPU使用情况.

有没有更好的办法 ?

小智 0

不幸的是,当在 sar 中使用 -f 选项以及间隔和计数时,它不会返回给定间隔的平均值(如您所期望的)。相反,它总是返回 sar 文件中第一个记录的值

解决这个问题的唯一方法是使用 -s 选项,它允许您指定开始采样周期的时间。我在下面提供了一个 perl 脚本,该脚本以对 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");
Run Code Online (Sandbox Code Playgroud)