※ ChatGPTを利用し、要約された質問です(原文:httpdのプロセスが徐々に増大し、数日でダウンするのですが)
httpdのプロセスが徐々に増大し、数日でダウンするのですが
このQ&Aのポイント
httpdのプロセス数がゆっくりとしたペースで徐々に増加し、数日でApacheが応答しなくなるという現象に悩んでいます。
Server-statusで確認すると、Scoreboard KeyがW(Sending Reply)のままキープされて、残ってしまっているプロセスがあるようです。
開放されないプロセスを検出し、停止させる方法が分かりません。解決策をご存知の方がいらっしゃればお教えください。
httpdのプロセスが徐々に増大し、数日でダウンするのですが
FreeBSD5.5+Apache2.0.61+PHP5.1.8+MySQL4.1.22にてWEBサービスを稼動させています。
HPへのアクセスはそれほど多くないのですが、httpdのプロセス数がゆっくりとしたペースで徐々に増加し、数日でApacheが応答しなくなるという現象に悩んでおります。
47562 ?? S 0:10.61 /usr/local/sbin/httpd -k start
47585 ?? S 0:12.06 /usr/local/sbin/httpd -k start
47586 ?? S 0:09.33 /usr/local/sbin/httpd -k start
.
.
このようなプロセスが増えていき、MaxClientを超えるあたりで応答しなくなります。
Server-statusで確認すると、どうやら、Scoreboard Key が W(Sending Reply)のままキープされて、残ってしまっているプロセスがあるような気がします。
31 requests currently being processed, 9 idle workers
WKKWWKWWKWKKKWKKK_WWW_KWWK__KW_K_W__.WKW._......................
................................................................
マニュアル等を参照しながらhttpd.confの設定を色々といじりましたが、全く変化がありません。以下、設定の内容です。
Timeout 60(300に変えて変化なし)
KeepAlive On(Offに変えて変化なし)
MaxKeepAliveRequests 300
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 20
MaxClients 200(600に変えて変化なし)
MaxRequestsPerChild 4000(0に変えて変化なし)
</IfModule>
CPU稼働率も10%いかない程度ですし、メモリのSWAPも起きていないので、高負荷によるダウンではないと考えております。
私としては、開放されないプロセスをなんらかの方法で検出し、プロセスを停止させればよいのではないかと考えていますが、具体的にどうやったらそれが実現できるのか、方法が分かりません。
どなたかご存知の方がいらっしゃればお教えください。
また、これ以外で良い方法をご存知であればぜひお願いいたします。
どうぞ宜しくお願いいたします。
お礼
すみません。間違って補足に入れてしまいました。 改めて情報どうもありがとうございます。
補足
なるほど、このような掲示板があるのですね。 情報ありがとうございます。 そちらにも投稿してみようと思います。 こちらの板も引き続き継続したいと思います。