Reverse proxy with Apache2's mod_proxy

mod_proxy 経由でバックエンドへのリクエストが時々詰まる現象についてもらったアドバイスのまとめ。
Apache Web mod_proxy
0
hiratara @hiratara
全裸のmod_perlとStarmanだとStarmanが速いのに、Apacheのmod_proxyを経由すると逆転してしまうのは自分の検証方法が悪いのかなあ。もしくは、Apacheのmod_proxyがレスポンスのkeep-aliveやprotocolで速度が変わるのかなあ。
徳永 広夢 @tokuhirom2
@hiratara mod_perl と mod_proxy を同じプロセス内でうごかしてたりとかはしませんよね?
hiratara @hiratara
ええ、別です。表がApache2で裏がApacheっていう環境ですので、起動ミスも多分ないはず。 RT: @tokuhirom: @hiratara mod_perl と mod_proxy を同じプロセス内でうごかしてたりとかはしませんよね?
hiratara @hiratara
--workersの指定を大きくしたら直った! RT: @hiratara 全裸のmod_perlとStarmanだとStarmanが速いのに、Apacheのmod_proxyを経由すると逆転してしまうのは自分の検証方法が悪いのかなあ。
hiratara @hiratara
mod_proxy+Starmanで--workersの数が少ないと、全てのリクエストが遅いんじゃなくてつまるリクエストが出るみたい。手元のOS Xでこれで検証。 http://gist.github.com/343369
Tatsuhiko Miyagawa @miyagawa
@hiratara undocumented ですが --backlog を 10 とかすくなくしてみるとどうでしょう?
hiratara @hiratara
おおっ、現象が起こるまでの回数はかなり伸びました。ただ、やはりそのうち詰まるリクエストが出てくるみたいです。 RT: @miyagawa: @hiratara undocumented ですが --backlog を 10 とかすくなくしてみるとどうでしょう?
Tatsuhiko Miyagawa @miyagawa
@hiratara also it's really a mod_proxy issue. Use real proxy like nginx :)
Tatsuhiko Miyagawa @miyagawa
@hiratara あとあえてdocumentしてませんが min_spare_servers 系を設定すればビジーのワーカー数におうじて動的にworkerの数はふやせます。本番系のアプリケーションサーバでこういう設定をつかうのは個人的に好きじゃないのですが
Tatsuhiko Miyagawa @miyagawa
@hiratara also SetEnv proxy-nokeepalive 1 to turn off keepalives might help
Tatsuhiko Miyagawa @miyagawa
@hiratara also disablereuse=On http://bit.ly/ba1tJf as well as STARMAN_DEBUG=1. I gave you all hints!
hiratara @hiratara
@miyagawa うおー、もろもろ助かります!明日にでも検証してみます。引っかかるのは、ワーカー不足でタイムアウト待ちって感じですかね。
Tatsuhiko Miyagawa @miyagawa
@hiratara @kazuho さんいわく mpm_prefork でmod_proxy使うのがわるい!そうですw
Kazuho Oku @kazuho
mpm_prefork + mod_proxy + persistent connections = broken by design RT @miyagawa: @hiratara @kazuho さんいわくmpm_preforkでmod_proxy使うのがわるい!そうですw
hiratara @hiratara
SetEnv proxy-nokeepalive 1 すれば確かに安定はするなあ。当然遅くなるけど。
hiratara @hiratara
worker の時は MaxClients を ThreadsPerChild で割るのか。MaxSpareThreadsを割ってしまっていた・・・。
hiratara @hiratara
昨日 @miyagawa さんが怒濤の勢いで教えてくれたことをエントリに書いた。 http://d.hatena.ne.jp/hiratara/20100326/1269595224
Kazuho Oku @kazuho
blogged 2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場 http://bit.ly/9FPbOp

コメント

コメントがまだありません。感想を最初に伝えてみませんか?