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