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も起きていないので、高負荷によるダウンではないと考えております。 私としては、開放されないプロセスをなんらかの方法で検出し、プロセスを停止させればよいのではないかと考えていますが、具体的にどうやったらそれが実現できるのか、方法が分かりません。 どなたかご存知の方がいらっしゃればお教えください。 また、これ以外で良い方法をご存知であればぜひお願いいたします。 どうぞ宜しくお願いいたします。

  • H-TKS
  • お礼率100% (1/1)

質問者が選んだベストアンサー

  • ベストアンサー
  • furoshiki
  • ベストアンサー率41% (163/396)
回答No.1

自宅サーバーを構築して運用している、相互リンクの元締めです。 http://sakaguch.com/ ここの掲示板で質問したら、適切な回答が間違いなく手にすることが出来ると思います。 .

H-TKS
質問者

お礼

すみません。間違って補足に入れてしまいました。 改めて情報どうもありがとうございます。

H-TKS
質問者

補足

なるほど、このような掲示板があるのですね。 情報ありがとうございます。 そちらにも投稿してみようと思います。 こちらの板も引き続き継続したいと思います。

関連するQ&A

  • httpdの占有について(さくらVPS)

    お世話になります。 現在さくらVPSさんのメモリ2Gのサーバーでサイトを運営しているのですが、 アクセス数1,000/日を超えた当たりからサーバーが重たく感じます。 Webminで実行プロセスをみると、 ■CPU平均ロード:0.50前後(5分、10分、15分) ■実行プロセス: 4303 apache 4.7 % /usr/sbin/httpd サイズ:338376 kB 4305 apache 4.7 % /usr/sbin/httpd サイズ:338376 kB 4307 apache 4.7 % /usr/sbin/httpd サイズ:338376 kB 4308 apache 4.5 % /usr/sbin/httpd サイズ:338376 kB 4302 apache 4.4 % /usr/sbin/httpd サイズ:338376 kB 4572 apache 4.4 % /usr/sbin/httpd サイズ:338376 kB 4301 apache 4.3 % /usr/sbin/httpd サイズ:338376 kB 4306 apache 4.2 % /usr/sbin/httpd サイズ:338376 kB 4304 apache 4.0 % /usr/sbin/httpd サイズ:338376 kB 4568 apache 4.0 % /usr/sbin/httpd サイズ:338376 kB 4565 apache 3.9 % /usr/sbin/httpd サイズ:338376 kB 4571 apache 3.9 % /usr/sbin/httpd サイズ:338376 kB 4574 apache 3.6 % /usr/sbin/httpd サイズ:338376 kB 4573 apache 3.2 % /usr/sbin/httpd サイズ:338376 kB 4567 apache 2.9 % /usr/sbin/httpd サイズ:338376 kB というような状況で常にhttpdのプロセスがCPUの60%前後を占めているのですがこれは正常でしょうか? またメモリサイズも特に以上ではありませんでしょうか? 1日の中でもCPU平均ロード時間が0.01~0.5とばらつきがありまだ原因が分かっておりません。 なにか良い調べ方などありましたらよろしくお願い致します。

  • サーバーで公開しているページがなかなか表示されない

    レンタルサーバーでWEBサイトをいくつか公開してるのですが、 最近、時間はまちまちなのですが 急に公開しているページが、なかなか表示されなかったり タイムアウトでサイトにつながらなくなってしまいます。 原因をしらべたいのですが 何から調べるのがいいのかわからなく困っています。 サーバーの方からメールで繋がらなくころのTOPコマンド内容がくるのですが、何かこの内容からわかる部分とかあるでしょうか? すいませんが、 もしなにかわかるようなところがありましたらよろしくお願いします。 heavy loaded. process (220) : 111 load (5) : 5.78, 7.22, 6.84 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND apache 4814 2.9 26.3 350456 272288 ? D 04:45 0:56 /usr/sbin/httpd apache 4813 2.0 31.6 424168 326876 ? D 04:45 0:38 /usr/sbin/httpd apache 4071 0.9 0.3 19916 4036 ? S 03:58 0:45 /usr/sbin/httpd apache 4327 0.9 0.3 19836 3796 ? S 04:13 0:37 /usr/sbin/httpd apache 3740 0.8 24.5 332128 253488 ? D 03:44 0:49 /usr/sbin/httpd apache 4006 0.8 0.3 19880 3952 ? S 03:54 0:42 /usr/sbin/httpd apache 4815 0.5 0.3 19848 3880 ? S 04:45 0:09 /usr/sbin/httpd apache 3711 0.3 0.3 19844 4044 ? S 03:44 0:18 /usr/sbin/httpd apache 4325 0.3 0.4 19904 5120 ? S 04:13 0:12 /usr/sbin/httpd apache 4328 0.3 0.3 19816 4004 ? S 04:13 0:12 /usr/sbin/httpd 。。。。

  • Apache(httpd)の自動起動について

    CentOS4でサーバ電源起動時にApacheを自動起動する設定方法についてご教授をお願いできますでしょうか。 オーソドックスなやり方では、chkconfig httpd onというコマンドを使用して、httpdが自動で立ち上がるようにすると思います。 このたび上司から既存のサーバのレプリカを作ってほしいと依頼されたのですが、chkconfig --listコマンドでそのサーバの自動起動の設定を見ると、 httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off となっているのです。 それでも自動起動しているのはなぜでしょうか?どのような設定をすれば実現可能でしょうか? なお、ps axコマンドでそのサーバのプロセスを見ると、 10928 ? S 0:00 /usr/sbin/httpd -k start となっています。 一方、chkconfig httpd onでhttpdを自動起動した場合のプロセスは、 3873 ? S 0:00 /usr/sbin/httpd となっており、かなり若いプロセス番号であることと、行末に「-k start」がついていないことが異なります。 この「-k start」が一つの手がかりとなると思うのですが、(何かでキックしているのでしょうか?)これは何の意味でしょうか? なお、 /etc/httpd/conf/httpd.conf や /etc/init.d/httpd は両者ともに同じで、ほぼデフォルト状態です。 以上、何卒ご指南くださいますようお願いいたします。

  • chrootコマンドがうまく使えません

    /usr/sbin/chroot /usr/local/apache2 /usr/local/apache2/bin/httpd -k start のコマンドを実行したいのですが、動かないのは何故なのでしょうか? コマンドの結果として、コンソールには以下の表示がされています。 /usr/sbin/chroot: cannot execute /usr/local/apache2/bin/httpd: No such file or directory PS chrootのコマンドパス httpdのパスはあってます。よろしくお願いいたします。

  • solaris10にて、SMFからのapache+ssl起動

    solaris10にて、apache2+sslの環境を構築しているのですが、SMF経由でapacheを起動させると、sslが有効になりません。 SMFにて使用する、起動用のスクリプト「/lib/svc/method/http-apache2」内のsvcpropというコマンドで、チェックしているところまでは分かったのですが、ここからが分かりません。 どなたか、ご教授願います。 ★SMFからの起動(apache2のみ起動される) # /usr/sbin/svcadm disable svc:/network/http:apache2 # /usr/sbin/svcadm enable svc:/network/http:apache2 # svcs -a |grep apache2 online 11:30:43 svc:/network/http:apache2 # ps -ef|grep http |grep -v grep root 692 1 19 11:30:43 ? 0:06 /usr/local/apache2/bin/httpd -k start webservd 698 692 0 11:30:51 ? 0:00 /usr/local/apache2/bin/httpd -k start ★apache2+SSL手動起動 ・apache無効化 # /usr/sbin/svcadm disable svc:/network/http:apache2 # /usr/local/apache2/bin/apachectl startssl # ps -ef|grep http webservd 675 670 0 11:25:45 ? 0:00 /usr/local/apache2/bin/httpd -k start -DSSL root 670 1 9 11:25:42 ? 0:03 /usr/local/apache2/bin/httpd -k start -DSSL

  • 複数のhttpdプロセスを起動する必要性

    # 先に、初心者故に見当違いな質問や間違った用語を使用している # 可能性があることをお詫びしておきます。その際には、お手数ですが # 後学のためにも具体的にご指摘いただければ幸いです。 先日、とある環境でps axした時にhttpdプロセスが複数起動しているのを見ました。 その時は、以下のような感じで、特定ディレクトリ以下にインストールされた複数のバージョンのapacheのhttpdがそれぞれ4~5つ程度起動しているようだったのですが、このように複数のhttpdを起動するのは、どういった時に使う手段なのでしょうか。 (単に複数のホストや複数のIPアドレスを1台のサーバーで運用するのであれば、バーチャルホストという機能が便利であるものと認識しています。) ================= /xxx/yyy/apache2.2.1/bin/httpd -k start /xxx/yyy/apache2.2.1/bin/httpd -k start /xxx/yyy/apache2.2.1/bin/httpd -k start /xxx/yyy/apache2.2.1/bin/httpd -k start /xxx/yyy/apache2.2.1/bin/httpd -k start /xxx/yyy/apache2.2.2/bin/httpd -k start /xxx/yyy/apache2.2.2/bin/httpd -k start /xxx/yyy/apache2.2.2/bin/httpd -k start /xxx/yyy/apache2.2.2/bin/httpd -k start /xxx/yyy/apache2.2.2/bin/httpd -k start /xxx/yyy/apache2.2.3/bin/httpd -k start /xxx/yyy/apache2.2.3/bin/httpd -k start /xxx/yyy/apache2.2.3/bin/httpd -k start /xxx/yyy/apache2.2.3/bin/httpd -k start /xxx/yyy/apache2.2.3/bin/httpd -k start (ディレクトリ名や階層は適当です) ================= また、このように複数のhttpdが起動している場合、ある特定のホストにアクセスした時に、どのhttpdがその処理を受け持つのかを知る方法はあるのでしょうか。

  • Apacheを複数のhttpd.confを用いてる場合の再起動

    Apacheを複数のhttpd.confファイルを用いて運用している場合、 個々のhttpd.confを指定してのApache再起動は可能なのでしょうか? 試しに、httpd_1.confとhttpd_2.confを用いて実施してみましたけど、 エラーになってしまいました。 手順を踏まえての詳細を以下に示します。 1./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_1.conf コマンドでApacheを起動。 2./usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd_2.conf コマンドでApacheを起動。 3.その後Apacheを停止したらプロセスが残ってしまいました。

  • httpd.confの場所とphp.iniの設定

    いつもお世話になっております。 ps auxww で表示したapacheが、/usr/sbin/httpd となっていた場合、 ここで動いているapacheのhttpd.confを正確に導く方法は、どのようになりますでしょうか。 これまで、apacheを調べるときには、 ・rpm -qa | grep apache もしくは、 /usr/local周りを調べていましたが、 apacheが/usr/local/で、複数稼動している場合、 または、/etc/httpd で動いているのか不明な場合、 どのconfをいじるべきかわからないためです。 また、httpd.confの場所がわかった場合、 phpがモジュールとして動いていた場合、 httpd.confに、LoadModule php5_module ・・・ となりますが、そのphp.iniの設定ファイルを導くには、 どのようにしたらよいでしょうか。 これまでは、phpが動くところで、phpinfoして、探していましたが、 それ以外に、いくつか方法を教えていただけると助かります。 最後に、php.iniを編集した後、正しくphp.iniが設定されているか(文法間違いがないか) どうかを確認するには、どうしたらよいでしょうか。 apacheでいう configtestみたいなものはありますでしょうか。 以上、たくさんで申し訳ございませんが、 何卒よろしくお願い致します。

  • linuxでapacheが動きません。

    linuxでapacheが動きません。 学校でネットワークの勉強をしており、課題をやるために自宅のPCでVMserverを使ってVine4.2をインストールしました。 今openssl0.98nとapache2.2.15をインストールしたところです。 学校ではちゃんと動いたのですが、自宅のPCでのapacheの再起動のところで困っています。 # /etc/init.d/apache start httpd (pid 16970) already running # /etc/init.d/apache stop # /etc/init.d/apache restart httpd not running, trying to start 再起動するとこのようなエラーが出て、startしても同じことの繰り返しです。 # ps -ax|grep httpd と入力するとこう出ました。 Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html 16970 ? Ss 0:00 /usr/local/apache/bin/httpd -k restart 16973 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16974 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16975 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16976 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16977 ? S 0:00 /usr/local/apache/bin/httpd -k restart 17004 pts/0 S+ 0:00 grep httpd 動いていませんよね? しかしブラウザでlocalhostを開くとIt Works!と出るし編集してからも見れました。 課題が終わらないので困っています。 ネットワークの勉強をしていますが、ちんぷんかんぷんでいまいちのみこめていません。 みなさんの知恵をお貸しください。。。

  • linuxでapacheが動きません。

    linuxでapacheが動きません。 学校でネットワークの勉強をしており、課題をやるために自宅のPCでVMserverを使ってVine4.2をインストールしました。 今openssl0.98nとapache2.2.15をインストールしたところです。 下記のURLの手順と同じようにインストールしました。 http://www.netp.tuis.ac.jp/moodle21/course/view.php?id=7&page=Apache2&gid=0&uid=0&dfsearch=apache 学校ではちゃんと動いたのですが、自宅のPCでのapacheの再起動のところで困っています。 # /etc/init.d/apache start httpd (pid 16970) already running # /etc/init.d/apache stop # /etc/init.d/apache restart httpd not running, trying to start 再起動するとこのようなエラーが出て、startしても同じことの繰り返しです。 # ps -ax|grep httpd と入力するとこう出ました。 Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html 16970 ? Ss 0:00 /usr/local/apache/bin/httpd -k restart 16973 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16974 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16975 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16976 ? S 0:00 /usr/local/apache/bin/httpd -k restart 16977 ? S 0:00 /usr/local/apache/bin/httpd -k restart 17004 pts/0 S+ 0:00 grep httpd 動いていませんよね? しかしブラウザでlocalhostを開くとIt Works!と出るし編集してからも見れました。 課題が終わらないので困っています。 ネットワークの勉強をしていますが、ちんぷんかんぷんでいまいちのみこめていません。 みなさんの知恵をお貸しください。。。