CPUを食べているプロセスを推測することしかできないという問題を経験しました。
私のCPU使用率は、psensorのすべてのコアで約80%でした。
htop
を試しました 、top
およびps -A -o pcpu,pid,cmd --sort +pcpu
(私がsudoで試した最後のものは役に立たなかった。)
これらはすべて、約7%しか使用していない(私が知っていた)犯人のpidを示していた…
そのpidをSIGKILLすると、すべてが正常に戻ります。
テストするために、ターミナルwhile true;do echo -n;done
しかし、私はhtopではっきりと見ることができました。だから、問題を引き起こしているのはそれと似ていなかったと思います…
それで、推測せずに犯人を見つけることができた他の方法があるのだろうか?
もう一度考えてみると、psensor
の計算について知りたいと思います。 「システム負荷インジケータアプレット」は、その値を表示できましたが、他のアプレットは表示できませんでしたか?
PS:待機時間についてのリンク、
平均負荷についてのリンク
承認された回答:
正確なヒントを提供するための詳細については十分に理解していませんが、実際に発生した負荷と表示されたCPU使用率の違いには2つの原因があると思います。
-
プロセスは、複数のスレッドと
top
で構成される場合があります それらを合計しない場合があります。これでスレッド数を確認できます:ps -eo pid,nlwp,%cpu,user,args
top
H
でスレッド処理を切り替えることができます 。通常、各スレッドのCPU使用率は非常に低くなります。 -
このプロセスにより、多くのI/Oが発生する可能性があります。 I / O待機時間は全体的なCPU負荷の一部ですが、プロセスのCPU使用率の値の一部ではない場合があります。したがって、
wait
を確認してくださいtop
の値 。どのプロセスがどの程度それを引き起こしているのかはわかりませんが、値が低い場合は効果を説明できません。