Centos6.2+apache2.2環境でロードアベレージは低いのに、apacheの子プロセス数が

どんどん減っていき、しまいには一桁になってしまいサイト表示が出来なくなるとい
う症状が出ています。

この状態に陥ったときは、apacheをrestartしても直ぐに症状が再発しまい、サーバー
をリブートしないと改善しないので困り果てています。
また、apacheのエラーログやmessagesにはこの件に関係するログは何も出力されて
いません。

どなたか対応策をアドバイス頂けないでしょうか。

■状況
サイトが表示出来ていない事を確認し、httpd restartをするも
Address already in use: make_sock...と出る

killall httpdとし、その後httpd startをすると正常にapacheが起動するも、
apache start後、直ぐにapacheのプロセス数が1001まで一気に上昇しその後一気に
プロセス数が下がっていく。秒間およそ200プロセス位が減っていたと思います。

apache start後のプロセス数上昇中はサイト表示が出来ているが、一気にプロセス数
が減少しはじめた段階でサイト表示は不可。

普段のプロセス数は400程度。

apacheはprefork
MaxClientとServerLimitは1500でKeepAliveはoffです。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/03/14 09:38:09

ベストアンサー

id:JULY No.1

回答回数966ベストアンサー獲得回数247

apache start後、直ぐにapacheのプロセス数が1001まで一気に上昇しその後一気に
プロセス数が下がっていく。秒間およそ200プロセス位が減っていたと思います。

と、

サイトが表示出来ていない事を確認し、httpd restartをするも
Address already in use: make_sock...と出る

から、おそらく、apache の子プロセスが、生成直後に異常終了しているために、Apache 自体が正常に終了出来ていない感じがします。

まず、「Address already in use: make_sock...」の原因を探るために、service httpd stop 後に、下記のコマンドを実行してみて下さい。

# lsof -i | grep ':http (LISTEN)$'

lsof コマンドが無ければ yum install lsof でインストール出来ます。これで、HTTP ポート(TCP 80 番)を掴んでいるプロセスが分かります。

もし、この時、httpd 以外のプロセス名が表示されている場合は、そのプログラムが障害の原因になっている可能性があります。

httpd が表示されていれば、Apache httpd が正常に終了出来ていない事になります。

なぜ httpd が正常に終了出来ないかは、LogLevel を変更して、詳細なログを吐き出すようにして、何か怪しいものが無いかを調べる事になります。

core - Apache HTTP サーバ
デフォルトでは warn なので、info や debug にすると、原因のヒントになるような事があるかもしれません。

id:meganer

ありがとうございます!

なるほど、まずはログレベルを変更しその上で何らかのログが採取出来ないか確認してみたいと思います!

2013/03/14 09:37:53

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません