1月 13 2009
アプリケーションサーバの構成を変えた
うちの自宅サーバは2本構成で、三国志大戦3Master だけリバースプロキシで別マシンに振っているんだけど、これがうまく動いていなかった。ので、構成を変えてみた。
[Internet]
|
[Web Server]
|
[App Server]
単純にこんな構成で、普通はWeb Server が応答を返すけど、三国志大戦3Masterの非静的ファイルのみ、App Serverに飛ばされる。
OS は両方とも FreeBSD。Web Server は Apache 2.2 で、App Server は mongrel_cluster + PostgreSQL。
問題
どうがんばっても App Server の mongrel が刺さるのが解決できない。 orz
いや単純に知識不足なのかもしれんけど。
netstat すると App Server 側では CLOSE_WAIT なソケットが大量に残ってる。( Web Server 側では FIN_WAIT_2 。)
TCP Timeout 時間の問題かと思って該当の
- net.inet.tcp.keepidle
- net.inet.tcp.keepintvl
- net.inet.tcp.keepinit
あたりをいじってみるも効果なし。
DB待ちみたいに見えてるので、PostgreSQL 側の
- アクセス数の設定変えたり(詳細省略)
- 使用バッファのサイズを変えてみたり(詳細省略)
- pgpool2 を使ってみたり
してもやはりダメ。
というところで、今 mongrel から lighttpd に変えて様子を見ているところ。 とりあえず1日経ったが異常なし。再現しなきゃ FreeBSD + mongrel + PostgreSQL の組み合わせがダメってことかも。
FreeBSD で mongrel だと不都合があるとかそういう話あるのかしらん。
