GNU/Linux >> Linux の 問題 >  >> Linux

なしでCPUを食べるプロセスを検出する:Top、Htop、Ps?

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つの原因があると思います。

  1. プロセスは、複数のスレッドとtopで構成される場合があります それらを合計しない場合があります。これでスレッド数を確認できます:

    ps -eo pid,nlwp,%cpu,user,args
    

    top Hでスレッド処理を切り替えることができます 。通常、各スレッドのCPU使用率は非常に低くなります。

  2. このプロセスにより、多くのI/Oが発生する可能性があります。 I / O待機時間は全体的なCPU負荷の一部ですが、プロセスのCPU使用率の値の一部ではない場合があります。したがって、waitを確認してください topの値 。どのプロセスがどの程度それを引き起こしているのかはわかりませんが、値が低い場合は効果を説明できません。


Linux
  1. LinuxでプロセスのCPU使用率を制限する方法

  2. エクスポートありまたはエクスポートなしの変数の定義

  3. vmlinuz プロセスは 100% の CPU で実行されます

  1. Linux サーバーで pty を食べているのはどのプロセスですか?

  2. Linux :最後の 1 秒間のプロセスによる CPU 使用率を確認する

  3. bashでプロセスを強制終了せずにタイムアウト

  1. WindowsServerでの高いCPU使用率のトラブルシューティング

  2. シェルスクリプトでCPU使用率を取得しますか?

  3. トップの %st はどういう意味ですか?