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使用率を取得するには? (より適切なもの)