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)