[PHP-users 107] Re: 暴走するhttpd プロセスの正体を確かめたい
SAWADA Hodaka
php-users@php.gr.jp
Tue, 19 Jun 2001 12:32:17 +0900
改行位置をいじってます。
At Tue, 19 Jun 2001 05:34:19 +0900,
Ryuzi Kambe wrote:
> > > >現在、RedHat 6.2(kernel 2.2.16)、Apahce 1.3.14上で
> > > >PHP 4.0.5を使っています。先日PHPLibを導入したのですが、
> > > >その時期からなぜか突然httpdプロセスが暴走するように
> > > >なってしまいました。
>
> 原因となるものを突き止めることが出来ました。
> Apacheのhttpd.confで、HostnameLookupを
> offにしたところ、httpdのプロセスが暴走することは
> なくなりました。
ということから、
> おそらく、名前を引きに行って戻って来なくなって
> しまったのだと思います。
これは、納得できるのですが、
> ちょっとしたアクセス制限
> などにホスト名を利用する時があるのですが、
> それで名前がひけないと、Webサーバのプロセス全体が
> ロックしてしまうような感じでした。
こちらは、上記設定とは無関係ではないでしょうか。
> 結局、Apache - PHP の間でどこがロックの現任になって
> いたのかというのを、ApacheとPHPの設定をそれぞれ
> 見比べて、突き止める必要がありそうです。
> #ちなみに、apacheのmod_phpモジュールでPHPを利用しています。
>
> もしかして、DNSに対する問い合わせのタイムアウトの
> 部分も、PHPの中でコーディングしてやるべきなのでしょうか。
そんなに厳しい条件なんですか?
例えば named を PHP の動いているマシンでも動かして、
キャッシュとして使えば、既知のものに関しては速くなると思いますが、
未知の名前を解決するのに、ある程度時間がかかるのは
しょうがないと思います。
とりあえず、Apache の log を見ながら、
引けたところと引けなかったところを
それぞれどれくらいの時間で解決できたか統計でもとって、
タイムアウトを吟味する必要があるでしょうね。
手っ取り早く nslookup で調べてみてはいかがでしょうか。
time nslookup example.co.jp とか
time nslookup 192.168.0.0 とかすると、おおよその時間がわかります。
# でも、この件は DNS 回りではないところじゃないかなぁ。
--
=^^= HODA =^^= http://www.tail.gr.jp/~hoda/
澤田保隆@しっぽアルゴリズム情報研究所 mailto:hoda@tail.gr.jp