トリアエズぶろぐ
フリーランスでやってる77世代のWEBプログラマが福岡からのんびりとお送りいたします。
スポンサーサイト


一定期間更新がないため広告を表示しています

<< CSSのoverflow内でSmoothScrollするサンプル | main | つなビィのサーバ構成 >>
apache2のinternal dummy connectionで涙目(解決!?)


つなビィのWEBサーバ機を往年のIBM X Series305からDELL PowerEdgeR300に変更。

メモリも6G(8Gはやっぱりあきらめました・・・via.
DELL R300のメモリを増設。しかし、、、)でapache2だし、PHP5だし、激速!のはずが、なぜかWEB見てたらコネクションが切れまくるんです。

たしかに、速いときは速い。スパッと出るんですが、、、数秒に1回の割合で
画像が出ない、つながらない。見てる途中で接続が切れる。
いままでは遅くてタイムアウトすることはあったけど、これはなんとも気持ち悪い。

最初はNFS周りを疑ってたんだけど、apacheのログをずーっと見てたら
1分間に何度と無く

::1 - - [26/Jun/2009:10:08:51 +0900] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.3 (CentOS) (internal dummy connection)"

というログ。TOPコマンドとあわせて見てるとこのログが出るときにapacheのプロセスがバサッと無くなるみたい。
なんじゃこりゃー!とグーぐる先生に問い合わせてみると出るわ出るわ。
どうやら親が子プロセスを切ってるみたいなんだけど、、、ていうかこっちはWEB見てんのに途中でいきなりバッサリ落とすのってどうよ。それってなくなくなーい!?
もう、意味がわかんない。この動作。なんか設定間違ったかなぁ?

とにかく、ぐぐりまくって見つけた由緒正しき説明ページ?によると、

In 2.2.6 and earlier, in certain configurations, these requests may hit a heavy-weight dynamic web page and cause unnecessary load on the server. You can avoid this by using mod_rewrite to respond with a redirect when accessed with that specific User-Agent or IP address.

InternalDummyConnection

てことで、avoidしちゃってもいい感じのことが書いてあるので、

httpd.confでRewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*internal¥ dummy¥ connection.*$ [NC]
RewriteRule .* - [F,L]
と書いてみるとapacheログが
::1 - - [26/Jun/2009:14:08:45 +0900] "OPTIONS * HTTP/1.0" 403 274 "-" "Apache/2.2.3 (CentOS) (internal dummy connection)"
とステータスが変わって、WEB見てても切れなくなった!ばんざーい!

ログを見てお気づきでしょうが、解決まで4時間かかりました。おれ涙目。

これで、勝手に子プロセスを切らないようになったんですが、なんだかメモリが際限なく食いつぶされているような気がする。。。まぁ、様子見で。


#追記
あれ、これで大丈夫かなと思ったけどなんかちょっと不安定。
もうちょっと調査が必要かなぁ。。。


#追記
やっぱり勘違いしてた><
上の設定は、internal dummy connectionでDBとかが絡むトップページにアクセスされて、無駄に負荷がかからないようにする設定だった。

色々とググって見たら
MinSpareServersよりMaxSpareServersをめっちゃ大きくすればいいよ!
とか、
いやいや、不思議だけどMinSpareServersよりMaxSpareServersを小さくするんだよ!
とか、
色々書いてあってもうわけわからん。


#追記2009/6/28 01:40
ちょこちょこと時間があるときに調べてみると、どうもバサッと接続が切れるときって、プロセスがdefunctになってるぽい。
たくさんのapacheのプロセス自体は生きたままなんだけど、いきなり全て再起動(?)されてるように見える。(全てCPU利用率が0に変わる)
アプリ側も疑ってみる必要あるのかなぁ。。。?


#追記2009/06/28 16:12
なんかね、apacheが不安定な理由がlivedoorのサーバ監視が原因のような気がしてきた。。。
監視プロトコルをtcpからURLに、優先度を低にしたら俄然安定してきた気がする。
なんだろう、よくわかんないんですけど??


#追記2009/06/29 13:45
livedoorのサーバ監視はやっぱ関係ねーか。んー、完全にはまってしまった。。。


#追記2009/06/29 22:50
解決!?

サーバ構成のおさらい。

DELL R300
kernel-PAE-2.6.18
CentOS5.3(32bit) + apache2.2.3
Memory 6G

で、yumでセットアップしただけの極々ノーマルなサーバです。
強いて言えば、memcached と apache で mod_proxy 使ってます。
なので、普通と違うところといえば

・PAEで6Gメモリ
・memcached
・mod_proxy

なので、基本に戻ってここら辺から疑って色々とやってみました。

旧つなビィサーバにはつなビィだけではなくて、ちょこちょことコンテンツが入ってたんです。
で、今回新サーバを設置したんですが一部のコンテンツは旧サーバに残したほうが都合が良かったので、それらは mod_proxy でそのまま運用しちゃえ!という設定をしてました。

で、
httpd.conf
ProxyPass / http://192.168.100.2/
とか書いてたんですが、これを
/etc/hosts
192.168.100.2   web01.tuna.be   web01

httpd.conf
ProxyPass / http://web01/
てしたら直りました・・・なんで?
もしかしてfrontもbackendもtuna.beとか設定してるから、

192.168.100.2にproxy ⇒ 192.168.100.2ってtuna.beじゃね? ⇒ tuna.beっつったらfrontサーバだよね? ⇒ frontサーバへ ⇒ ループ ⇒ 結果ばっさり落とされた?

と推測。
あくまで推測。
だって、LogLevelとかをdebugまで落としてもerror_logにはそんな感じのこと出てこなかったし。

すっきりしたんだけど、どこかに残るこのモヤモヤ。
誰か詳しい方助言いただけるとうれしいです。。。

ここ最近こればっかり考えてて挫ける寸前だったよ!胃も痛くなってきてたし><
もうだめかと思ったよ、パトラッシュ・・・。

やっと次へ進めそう。


#追記6/30 12:30
しつこくてすみません。

かなりApacheが快適になったんですが、やっぱ極たまーに表示でTimeoutする。静的ページも。

ちなみに
HEAD http://127.0.0.1/
とかでもえらく時間がかかることがあるのでネットワークではなくサーバの問題かな。

httpd.confで
LogLevel debug
にしてみると、
(32)Broken pipe: core_output_filter: writing data to the network
と気になるログ。
Error :: Broken pipe: core_output_filter: writing data to the network
http://httpd.apache.org/docs/2.0/faq/error.html
を参考にしてみたけどいまいち効果なし。

サーバは奥が深いねぇ。。。



#追記7/6
なんだかんだ1週間ほど悩みましたが、結局netscreenの設定が問題でした。。。
正直燃え尽きた。


>いわもとさん
すみません、古い話なのではっきりと覚えてないのですが・・・
Network>Zones>DMZのEdit
で、
If TCP non SYN, send RESET back
のチェックを外したら問題解決したような気がします。

なんでブログに残してなかったんだろ。。。間違ってたらすみません。

スポンサーサイト


OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.3 (CentOS) (internal dummy connection)"
でググったらこのブログにたどり着きました。
まったく同じ悩みをしています。

netscreen とは何ですか??

もしよかったら、今度相談に乗ってください。
さわい | 2010/01/23 20:23
>さわいさま

netscreenは、ルータの一種です。
netscreenの設定で定期的にサーバが生きてるかチェックするものがあるらしく、それの相性が悪くて(?)接続が不安定になっていた模様です。。。

internal dummy connectionは、CentOSが自分自身のチェックにアクセスしているだけで、こいつは悪さはしていなかったですー
akihiro | 2010/01/25 13:37
はじめまして。
さわい様と同様に、ググってこのページに辿り着きました。
私の環境でも netscreen も使っており、まさに同じ状況なのですが、
よろしければ、netscreen のどの項目か教えて頂けませんでしょうか。
よろしくお願い致します。。
いわもと | 2011/04/11 16:15
>いわもとさん

記事の最後に追記してみました。
これで治るといいんですが…
akihiro | 2011/04/11 20:58
早速ありがとうございます!

現在、既に運用中なので、すぐに設定変更できるわけではないのですが、
設定を変更して様子を見てみたいと思います。
ありがとうございました。
いわもと | 2011/04/12 16:12
COMMENT









Trackback URL
http://akihiro.jugem.jp/trackback/254
TRACKBACK