ダウンタイムが発生しているパフォーマンスの問題について Web サーバーをデバッグするプロセスは何でしょうか?

ダウンタイムが発生しているパフォーマンスの問題について Web サーバーをデバッグするプロセスは何でしょうか?

残念ながら、これはいくぶん漠然とした質問です。しかし、私は時々この質問に直面します。

現在、私のサーバーは完全に管理された CentOS 5 - Plesk 9.2.1 です。

最近、サーバーが頻繁に停止し、Apache (または) MySQL またはその両方の速度が大幅に低下し、ページが返されないか、非常に遅く返されるようになりました。MySQL を再起動すると改善され、Apache を再起動すると改善される場合もありますが、サーバー全体を再起動する必要がある場合もあります (SSH の動作が非常に遅くなり始めます)。

そこで質問なのですが、ダウンタイムが発生しているパフォーマンスの問題について Web サーバーをデバッグするプロセスは何でしょうか?

サーバーに大量のトラフィックが流入しているとは思えません(一定のトラフィックは流入していますが)何か殺してしまいそうだ…

どこから始めればいいの!

ヘルプ!

答え1

MySQL で何らかのクエリ プロファイリングを試したことがありますか? 非常に集中的なクエリ (たとえば、SELECT * FROM tbl1 INNER JOIN tbl2 ... INNER JOIN tbl3... LEFT JOIN tbl 4... など) を実行し、多数の行を返したり、クエリが適切にインデックス付けされていない場合、システムが大幅に遅くなる可能性があります。これは、経験の浅い頃に最適化しなかったことから学んだことです ;-)

mysqlreportやtuning-primer.shスクリプトなどのツールは、このための良い出発点です。mysqlreportはhttp://hackmysql.com/mysqlレポートリンクは 1 つしか投稿できないので、代わりに「tuning-primer.sh」を Google で検索してください :-)

答え2

ベルンハルトの回答は良いですが、sysstatを飛ばして直接ムニン負荷をグラフィカルに表現すると、スワップが発生しているかどうか [Apache プロセスが多すぎる?]、ディスクが破損しているかどうか [SQL クエリが適切に最適化されていない、一時テーブルが大きすぎる?]、CPU パワーが不足しているかどうかなどを把握するのがはるかに簡単になります。

MySQLをオンにする遅いクエリログ

答え3

まず、sysstat パッケージをインストールしてください。これにより、CPU、メモリ、I/O 負荷に関する統計が 10 分ごとに作成されます。サーバーが再び遅くなり始めたら、"sar" ユーティリティ (パッケージの一部) の出力を調べて、実際にボトルネックになっているリソースを特定できます。

関連情報