CPU > 80% - どのようにデバッグしますか?

CPU > 80% - どのようにデバッグしますか?

私はUbuntu 14.04 digital Ocean vpsでlaravelアプリケーションを実行し、New Relicを使用してサーバーを監視しています。

CPU使用率が80%を超えたというEメール通知を受け取りました。 New Relicにログインしましたが、18時間のCPU使用率は99%で表示されます。ただし、シェルにログインして「top」を実行すると、プロセスの総CPU使用率は10%にもなりません。

何が間違っている可能性がありますか?実際の使用量を確認するために他のどのコマンドを実行することができますか? (アプリケーションに無限ループがある可能性があります。)

私のhtopの結果は次のとおりです。

ここに画像の説明を入力してください。

Shift+K 以降の htop です。

ここに画像の説明を入力してください。

すべてのリンクや助けをいただきありがとうございます。

ベストアンサー1

何が起こっているのかはよくわかりませんが、個々のプロセスの%CPU列は、それが何を意味すると思うかを教えていないようです。上部のマンページから:

  k: %CPU  --  CPU usage
  The task’s share of the elapsed CPU time since the last screen update,
  expressed as a percentage of total CPU time. 

4秒ごとに更新すると仮定します。この2秒間に費やされた合計CPU時間は6%です。この4秒以内に。さて、1秒間突然CPU時間の24%を使うとしましょう。私はこれが起こっていると言うものではありませんが、起こることができます。

ここはtopとても満足しています。 CPU使用量がCPUごとに分類され、さらに、、、、、usersysI / Oで)ハードウェアniceおよびソフトウェア割り込みサービス(hi si idlewaitに分類されることがわかります。htopおそらくこれも入れてみることができると思います。 20%以上のアイドル状態のCPUが1つあれば、ファンが邪魔しない限り心配する必要はありません。ただし、気になる場合は%waitと%hi / %siが非常に高い場合があります。この場合、単一プロセスのCPU使用率が高くなく、むしろ何らかの理由でカーネルが非常に忙しくなります。

おすすめ記事