私は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ごとに分類され、さらに、、、、、user
(sys
I / Oで)ハードウェアnice
およびソフトウェア割り込みサービス(hi si idle
)wait
に分類されることがわかります。htop
おそらくこれも入れてみることができると思います。 20%以上のアイドル状態のCPUが1つあれば、ファンが邪魔しない限り心配する必要はありません。ただし、気になる場合は%waitと%hi / %siが非常に高い場合があります。この場合、単一プロセスのCPU使用率が高くなく、むしろ何らかの理由でカーネルが非常に忙しくなります。
答え2
同様の問題がありました。バックグラウンドでTOPコマンドを実行し、txtファイルにリダイレクトしました。
トップ>トップ。txt&
ありがとうございます。どのプロセスがCPUを無駄にしているかを確認できます。
答え3
いくつかのオプションがあります。私が好むのは、このプログラムは通常htop
デフォルトではインストールされていませんが、ほとんどすべてのディストリビューションで使用できることです。同じ情報を提供しますtop
が、より豊富な機能セットを提供します。インタラクティブな問題プロセスを見つけるのは良いですが、スクリプトには適していません。監視スクリプトに何かを統合したい場合は、このコマンドがps -eo pid,pcpu,comm
役に立ちます。 PID および CPU 使用率とともに、すべての現在のプロセスを非常に解析しやすい形式で印刷します。
答え4
何が間違っている可能性がありますか?
まず、あなたは多くのメモリを必要とするLaravelを使用しており、半分のメモリを持っていません。サポートされていないオペレーティングシステムで実行しています。これは良くありません。残りのスタック(Webサーバー、PHP SAPI、PHPバージョン)についてはまだ教えていません。