Web サーバーをオンラインに戻すことができません。サーバーがクラッシュし続けるため、再起動するには電源を入れ直す必要があります。
私は共有ホストを使用しているため、原因を見つけるのはさらに困難です。
どの特定のページ (または少なくともどの仮想ホスト) の CPU 使用率が異常に高いのかを調べるにはどうすればよいでしょうか?
私は CentOS と標準的な Apahce+MySQL+PHP を使用しています。
ありがとう!
答え1
おそらく、apachetop をインストールするのが最善のアイデアです。https://code.google.com/p/apachetop/Apache の server-status を使用することもできますが、apachetop を使用すると、はるかに読みやすくなります。
答え2
ページは実際にはこの問題とは何の関係もありません。
次のコマンドは、httpd ワーカーがある現在の作業ディレクトリで、CPU パーセンテージ順にソートされた httpd の pid リストを出力します。
もちろん、これは httpd が原因であると想定しています。
IFS=" "; ps -A ho pcpu,comm,pid | grep httpd | sort -k1n \
while read pcpu comm pid; do \
echo -n "${pcpu"}: "l pwdx "${pid}";
done
次のような出力が得られます。
0.0: 1850: /
0.0: 1852: /
0.0: 1854: /
0.0: 1853: /
0.0: 1855: /
0.0: 1856: /
0.0: 1857: /
0.0: 1858: /
これが機能するのは、Apache が仮想ホスト内で作業を行う前に、ディレクトリを仮想ホストのドキュメント ルートに変更するためです。したがって、そのドキュメント ルートを持つ仮想ホストが原因となります。
同じドキュメント ルートを使用する仮想ホストが複数ある場合は、両方の仮想ホストを調査して、その内容を確認する必要があります。
CPU 時間を消費する Apache ワーカーがないので、それらはすべて 0.0 であり、順序付けは行われません。
問題が実際には SQL クエリである場合は、何も表示されないことを期待しないでください。