2010-12-01 5 views
9

私は怒ってしまう問題があります。私はトップバッチモードでのCPU使用率

top -b -n 1

問題は、私はバッチモードで100回のトップを実行することができますですが、CPUの使用率は、決して元の値を超えて変化しない、次のコマンドを使用して、バッチモードでのトップを実行しています。メモリ使用量は期待どおりに変化しますが、CPUは同じままです。別のウィンドウで別のトップを同時に実行すると、CPU使用率はバッチモードではトップには変わりますが、トップでは変わりません。

基本的にCPU統計情報はバッチモードでは変更されておらず、インタラクティブモードでは変化していないようです。なぜ誰が知っていますか? あなた自身で試してください。上記のコマンドを数回実行して、CPU使用率を観察し、対話モードでトップに走り、CPU使用率が常に変化することを観察してください。

+0

ここでうまく動作します。それ以外の場合は、psやおそらく 'sar |尾-1' – Anders

+0

私は同じ動作を参照してください。バッチコマンドは、CPU使用量などのために十分な長さのアキュムレータを得るのに十分な長さで実行してはなりません。 – aschepler

+0

アシェプラー、それはそうだと思われますが、私は他のどこにも言及していません。反復回数を2に設定すると動作します。問題は、1回繰り返して作業する必要があることです。 – toc777

答えて

6

最初の繰り返しでは、システムの起動後の平均CPU使用率が表示されます。

(これは新しいバージョンのtopの場合はもう適用されません)。

+0

はい、そうかもしれません。 – toc777

+2

これはどうやって分かりますか? –

2

この場合、5秒間の累積CPU使用率を示す1つのライナーがあります。 -dフラグで調整できます。

top -b -d 5 -n 2 | awk '$1 == "PID" {block_num++; next} block_num == 2 {sum += $9;} END {print sum}'