Top過去ログ目次掲示板

作成日:2009年04月28日 作成:おやじ
掲示板で過去に質問された内容です。

No.7972 ApacheでSending Replyが増え続ける


No.7972 投稿時間:2009年04月28日(Tue) 17:15 投稿者名:やま URL:
タイトル:ApacheでSending Replyが増え続ける

ApacheのServer-Statusで見るとSending Replyは減ってくれないんです。
keepalive_timeを減らしてみたんですが
多少は増えなくなったんですが、それでも増えることがあります。

Server-StatusでSending Reply状態のIPを見ると
googlebotやYahooなんですよね
中途半端な通信をしているから、残ってしまうのですかね
ほかのアクセスはちゃんとしているんですが

keepalive_timeを調整する前はCLOSE_WAITもひどい状態でした。

3日ぐらいで定期的に再起動しているんですが
たまに一気に増えるときがあって、増えすぎると
サーバーはフリーズしかけるんです。

いい解決策ないでしょうか?


No.7973 投稿時間:2009年04月29日(Wed) 06:57 投稿者名:おやじ URL:
タイトル:ある特定のコンテンツということはないですか?

> ApacheのServer-Statusで見るとSending Replyは減ってくれないんです。
> keepalive_timeを減らしてみたんですが
> 多少は増えなくなったんですが、それでも増えることがあります。
>
> Server-StatusでSending Reply状態のIPを見ると
> googlebotやYahooなんですよね
> 中途半端な通信をしているから、残ってしまうのですかね
> ほかのアクセスはちゃんとしているんですが
>
> keepalive_timeを調整する前はCLOSE_WAITもひどい状態でした。

CLOSE_WAITは、FINを受け取ったのにFINを返していない状態なので、「keepalive_timeを調整する前はCLOSE_WAITもひどい状態でした。」というのが、どういう状態かよくわかりませんね。
ログを見るとgooglebotはアクセスが多い(ページランクが大きい)サイトは、1サイトあたり1回/1分ぐらいで回ってきているようです。
おやじのところはバーチャルホストで複数サイト運用しているので、全体ではその数倍と思います。
おやじのところの状況を見てみましたが、そもそもCLOSE_WAITなんて1つもありませんでした。
パケットキャプチャしてみましたが、KeepAliveTimeoutを設定してあればタイムアウトすればApacheからFINがでてgooglebotもチャントFINで切ってきていますので、変なダウンローダのように食い散らかしているようには見えません。
コンテンツ(CGI等のバグ含む)やフィルタ等のアクセス制限でrobotからのアクセスのセッションが残ってしまっていないでしょうか?
因みにおやじのところは、prefork MPMの標準設定でKeepAliveTimeoutは15です。
アクセスはすべて合わせて、30000PV/日程度です。

> 3日ぐらいで定期的に再起動しているんですが
> たまに一気に増えるときがあって、増えすぎると
> サーバーはフリーズしかけるんです。
> いい解決策ないでしょうか?

ログを見ればわかると思いますが、ある特定のコンテンツということはないですか?


No.7974 投稿時間:2009年04月29日(Wed) 13:46 投稿者名:やま URL:
タイトル:Re: ある特定のコンテンツということはないですか?

> CLOSE_WAITは、FINを受け取ったのにFINを返していない状態なので、「keepalive_timeを調整する前はCLOSE_WAITもひどい状態でした。」というのが、どういう状態かよくわかりませんね。
> ログを見るとgooglebotはアクセスが多い(ページランクが大きい)サイトは、1サイトあたり1回/1分ぐらいで回ってきているようです。
> おやじのところはバーチャルホストで複数サイト運用しているので、全体ではその数倍と思います。
> おやじのところの状況を見てみましたが、そもそもCLOSE_WAITなんて1つもありませんでした。
> パケットキャプチャしてみましたが、KeepAliveTimeoutを設定してあればタイムアウトすればApacheからFINがでてgooglebotもチャントFINで切ってきていますので、変なダウンローダのように食い散らかしているようには見えません。
> コンテンツ(CGI等のバグ含む)やフィルタ等のアクセス制限でrobotからのアクセスのセッションが残ってしまっていないでしょうか?
> 因みにおやじのところは、prefork MPMの標準設定でKeepAliveTimeoutは15です。
> アクセスはすべて合わせて、30000PV/日程度です。
>
> > 3日ぐらいで定期的に再起動しているんですが
> > たまに一気に増えるときがあって、増えすぎると
> > サーバーはフリーズしかけるんです。
> > いい解決策ないでしょうか?
>
> ログを見ればわかると思いますが、ある特定のコンテンツということはないですか?

特定のコンテンツというわけじゃないですが
PHPで作った物が多いのでPHPで止まっていることが多いのは確かです。
うちでもKeepAliveTimeoutは15にしてあります。

じゃあ、PHPで書いたコンテンツがBOT等でアクセスされたとき
ちゃんと終わらずに抜けられているから
そのままばぐったままになっているということでしょうか?

普通にアクセスする分にはバグは出てないんですが
PHPを見直すしかないんでしょうか?

それとも、強制的に終わらせるようなことはできるんでしょうか?


No.7975 投稿時間:2009年05月01日(Fri) 10:54 投稿者名:おやじ URL:
タイトル:monitを検討されては?

> 特定のコンテンツというわけじゃないですが
> PHPで作った物が多いのでPHPで止まっていることが多いのは確かです。
> うちでもKeepAliveTimeoutは15にしてあります。
>
> じゃあ、PHPで書いたコンテンツがBOT等でアクセスされたとき
> ちゃんと終わらずに抜けられているから
> そのままばぐったままになっているということでしょうか?
>
> 普通にアクセスする分にはバグは出てないんですが
> PHPを見直すしかないんでしょうか?

エラーではなく「PHPで止まっていることが多い」なら、そうなって当然と思います。
バグ取りするしか基本的な対策はないと思いますが、その他の問題も含めてオーバオールでの対策としてmonitあたりを検討してはどうですか?
これを入れておけば、apacheが反応しなくなるとrestartしてくれます。

http://www.aconus.com/~oyaji/suse9.3/monit.htm



掲示板▲頁先頭