過去2日間で、数人のユーザーがいるサーバーで問題が発生し始めました。サーバーはOpenVZ VPSです。通常、CPU使用率が高い場合、常にtop
コマンドを使用して理由を調べます。しかし、このサーバーの場合、top
コマンドから有用な情報を受け取りません。以下は、私が経験している問題のスクリーンショットの例です
スクリーンショットでわかるように、%CPU
列はすべてのプロセスでほぼ常にゼロであり、実際にはほとんどすべての値がゼロであることがわかりますが、CPU使用率は最大10コアに達しました。
私は完全に道に迷い、理由を見つけるために何をすべきかわかりません。それで、私が直面している考えられる原因について誰かが何か知っているかどうか尋ねたいのですが?サーバーの問題が原因ですか?
提案をありがとう!
編集:
このスクリーンショットは、高負荷が発生した場合にのみ取得されることに注意してください。数時間ごとに発生し、約20分間続きます。通常の使用は、約0.0〜0.2コアです。以下は通常の使用例です。
更なる更新
ちょうど今再び起こった、これが提案されたコマンドのスクリーンショットです
私はこれらについて初心者であることを申し訳ありませんが、私が正しく理解していれば、ディスク使用量に問題はなく、IO使用量は非常に低くなっています。
最終更新
回答とコメントに記載されているvmstat
、ps
を使用して推奨される方法を試してみましたが、有用な情報が見つかりませんでした。スパイクが発生すると、Apache、mysqlも停止しましたが、役に立ちませんでした。ようやくVPSプロバイダーに連絡して、別のノードに変更するように依頼しました。彼は最近、悪意のある顧客によって酷使されているノードの問題を認識しており、問題の修正に取り組んでいると私に言った。だから、今は最後から何もする必要がないと思います。それでも、提案を提供してくれたすべてのメンバーに感謝し、このQ&Aを今後の参考にしてください。
CPU時間の約30%がWAITに費やされているようで、(少なくとも1分は)負荷が非常に高いです。
だから私はあなたのストレージとストレージの使用パターンをチェックすることから始めます。開始点としては、iostatを調べたり、遅い操作(書き込みと読み取り)を監視したりすることをお勧めします。上位にある各プロセスに費やした時間をチェックして、目立つものがないか確認することもできます。 mysqlを実行しているので、それがどのように実行されているかも確認します。
また、十分な量の予備メモリがあるにもかかわらず、スワップアウトしているように見えるので、vm.swappiness
(sysctlを使用)はあなたのためにできます。 RAMはスワップよりも速いので、それを使用できるのであれば、そうします。
他のすべてが失敗した場合、sysrqをプローブすることで何ができるかを調べてください。
より視覚的な概要が役立つ場合は、既存のソリューションがない場合は、fireholのネットデータ( https://netdata.firehol.org/ )を調べます。
あなたは問題が何であるかを説明していません。アプリケーションが十分に応答しないなど、パフォーマンスの問題があった場合は、それを説明してください。
負荷平均はnot使用中のコアの数です。これは、CPUまたは待機中のプロセスの数に関連しています。負荷平均がコアの数よりもはるかに大きい場合は、システムがすべての待機に対して応答性が低いことを示している可能性があります。
コンテナベースのシステムを使用しています。ホストの共有カーネルは1つだけで、その上でいくつかのプロセスを実行しています。ホスト上の他のコンテナが機能するときにロードスパイクが表示されますが、プロセスリストには反映されません。
atop
をインストールする必要があります。より有益です。
CPUは入出力操作で使用されます。 WA-待機しており、30%以上です。より有用なプロセスはmysqld
です。他よりもCPU時間を消費します。
メモリバッファを増やし、他のMySQLパラメータを変更してディスク操作を減らすことをお勧めします。あなたはそれについて読むことができます インストール後の10のMySQLパフォーマンスチューニング設定
仮想マシンを使用している場合、おそらく他のVMまたはホストシステムがディスクを非常に強く使用しています。また、ディスクに不良セクターがある可能性もあります。SMARTホストサーバーでコマンドsmartctl -a
を介して属性。