単一プロセスの CPU 使用量を定期的に取得します。

単一プロセスの CPU 使用量を定期的に取得します。

kswapd0プロセス(pid 52)が時々CPUの25%(フルコア1個)を使い始めるという問題に直面しました。私は通常、次のコマンドを使用してこれを停止しますsudo sh -c "echo 1 > /proc/sys/vm/drop_caches"(この問題についてはIBMページを参照してください。ここ)。

kswapd0が3秒以上22%以上のCPUを使い続けるたびに、このコマンドを実行する監視装置を設定したいと思います。そこで、kswapd0 CPU使用率を定期的に効率的に取得したいと思います。


以下は、即時のCPU使用率を取得するために使用するコマンドです。

上記で得た情報は次のとおりです。

top -bn1 -p $(pgrep kswapd0)

最後の行から%CPU値を抽出するために、出力をsedにパイプしました。

... | tail -n1 | sed -r 's/^ *([^ ]+ +){8}([^ ]+)( +[^ ]+){3}/\2/'

インタラクティブモードでは、表示されたCPU使用率はリフレッシュ間topの平均CPU使用率であることがわかりますが、一番上への単一の呼び出しについて何がわかりません。

ps -p $PID -o %CPU印刷される平均CPU使用率は(最後の数秒ではなく)全体のプロセス寿命の間に行われるため、これは私の問題には適していません。

より簡単な技術を使用してCPU使用率を取得するには? (より適切なもの)

ベストアンサー1

おすすめ記事