メモリの少ないVPS環境で、メモリの節約という観点でサーバ構成をいろいろ変えてみたのでまとめ。
- mod_ruby
- FastCGI(mod_fcgid)
- プロセス数 ≧ 0
- DefaultMaxClassProcessCountを「1」にしとけば、Railsアプリ以上にプロセスが増えない。
- DefaultMaxClassProcessCountを「0」にしとけば、IdleTimeoutでプロセスが死んでくれる。
- 負荷をかけたときにたまにレスポンスが死ぬのが気になる…
- 複数のRailsアプリに同時にアクセスされた場合に、プロセス数 ≧ アクセスされたアプリ数 になるのも気になる。
- メモリが足りなくなったらプロセスを立ち上げるのを遅らせるとかできないのかな?rubyの起動に失敗して終わり?
- mongrel
- プロセス数 = Railsアプリ数(クラスタを使わなきゃ)
- プロセスの融通は利かないけど、高負荷時にmod_fcgidより安定している…気がする。
- FastCGI(lighttpd + mod_fastcgi)
- プロセス数 ≧ Railsアプリ数
- min-procsを「0」にはできないみたい
- dispatch.fcgiのプロセスが子、孫と連なっているのが気になる…