富豪 on Rails?
Rails アプリはだいたい起動した時点で1プロセス35~40MBぐらい消費する。Rails専用仮想サーバーに2GB/2CPUを割り当てて、2048 / 50 = 40 個ぐらい起動できるな、と分かったところで、ubuntu のメモリの消費量を観ると40MB。mysqld が 50MB。ということで、35個ぐらい立ち上げることにしてみた。複雑なSQLは飛んでないのでmysqlはとりあえずこの状態で、DBネックになるようならメモリを追加する。
ps alx でとってみた。
root@rails:~# ps alx | awk '{printf ("%d\t%s\n", $8,$13)}' | sort -n -r | grep ruby 50916 /usr/bin/ruby1.8 50912 /usr/bin/ruby1.8 50912 /usr/bin/ruby1.8 50908 /usr/bin/ruby1.8 50864 /usr/bin/ruby1.8 48924 /usr/bin/ruby1.8 48924 /usr/bin/ruby1.8 48924 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48920 /usr/bin/ruby1.8 48916 /usr/bin/ruby1.8 48916 /usr/bin/ruby1.8 48916 /usr/bin/ruby1.8 48916 /usr/bin/ruby1.8 48916 /usr/bin/ruby1.8 48916 /usr/bin/ruby1.8 48912 /usr/bin/ruby1.8 48912 /usr/bin/ruby1.8 48912 /usr/bin/ruby1.8 48908 /usr/bin/ruby1.8 48908 /usr/bin/ruby1.8 48904 /usr/bin/ruby1.8 48904 /usr/bin/ruby1.8 48904 /usr/bin/ruby1.8 48904 /usr/bin/ruby1.8 48904 /usr/bin/ruby1.8 48904 /usr/bin/ruby1.8 48900 /usr/bin/ruby1.8 48900 /usr/bin/ruby1.8
L7 balancer(Apache)のプロセス数とバランスを検討して決めるもんだよなぁ、と思いつつ。mongrelのfastthreadって、結局どれぐらい1プロセス内で並列でさばいているんだろう。。。