2016-02-06 9 views
5

この例では、sar sar -u 1 3が1秒間隔で次の3秒間の統計情報を示しています。SARを使用して最後の5分間の全体的なCPU使用率を確認するには

しかし、sarもバックグラウンドで情報を収集し続けます(私のcronは毎分の統計を収集するように設定されています)。最後の5分の統計とその平均値を伝えるためにsarコマンドを使用して簡単に問い合わせる方法はありますか?

今私は最後の5分で、全体的なCPUの使用率を確認するには、次のコマンド

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}' 

の下に使用しています。

良い方法がありますか?

答えて

0

残念ながら、sarの-fオプションをintervalとcountとともに使用すると、期待どおりに一定の間隔の平均値が返されません。代わりに、常にsarファイルに最初に記録された値を返します。

これを回避する唯一の方法は、-sオプションを使用してサンプリング期間を開始する時刻を指定することです。私はあなたが探しているものを返すような方法で構築されているsarの呼び出しで終了する以下のperlスクリプトを提供しました。

これが役に立ちます。

Peter Rhodes。

#!/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");