メモリ節約サーバ構成

メモリの少ないVPS環境で、メモリの節約という観点でサーバ構成をいろいろ変えてみたのでまとめ。

  • mod_ruby
    • メモリ消費量は少ないだろうと思ってたけど、Apacheの子プロセス分Railsのメモリを食う。
    • Apacheのプロセスを減らせば、メモリ消費量も減るのかも。
    • Railsアプリ数 > Apacheのプロセス数じゃないとメモリの節約にならない気がする。
  • FastCGI(mod_fcgid)
    • プロセス数 ≧ 0
    • DefaultMaxClassProcessCountを「1」にしとけば、Railsアプリ以上にプロセスが増えない。
    • DefaultMaxClassProcessCountを「0」にしとけば、IdleTimeoutでプロセスが死んでくれる。
    • 負荷をかけたときにたまにレスポンスが死ぬのが気になる…
      • Rubyのプロセスに対してApacheの子プロセスが多いと、いくつかのリクエストは失敗するみたい。
    • 複数のRailsアプリに同時にアクセスされた場合に、プロセス数 ≧ アクセスされたアプリ数 になるのも気になる。
      • メモリが足りなくなったらプロセスを立ち上げるのを遅らせるとかできないのかな?rubyの起動に失敗して終わり?
  • mongrel
    • プロセス数 = Railsアプリ数(クラスタを使わなきゃ)
    • プロセスの融通は利かないけど、高負荷時にmod_fcgidより安定している…気がする。
  • FastCGI(lighttpd + mod_fastcgi)