影舞をFastCGIで動かすかどうか

リポジトリSubversion への移行を依頼したのでコードに触れません。いや、べつに触ってもいいんだけど、チェックインできないと落ち着けません。

そんなわけで、影舞 0.8.7 のスループットをはかってみました。Linux とかだとこれまで mod_ruby で動かしていた人が多いと思いますが、いまさらながら FastCGI で動くようになったので移行したほうがいいのか、それともしないほうがいいのかなどの目安になれば。

サーバに使ったマシンは Thinkpad s30。PenIII 600MHz、メモリ 256M。今となってはさびしいスペックですが、これを持ってなければきっと影舞は作ってなかったと思われるいわくつきのマシンです。

測定は JMeter で。スペックを考慮してスレッド数 20、Ramp-Up 20秒、ループ回数100 (サンプル数2000)でいってみました。影舞は空のプロジェクトの TOP ページです。TOP ページはキャッシュされるので、参照だけならレポート数が増えてもそれほど差はでないはず、です。

Linux(SuSE 9.1) + Apache 2.0.49 の場合

種類 スループット エラー
HTMLファイル 102.7/sec 0.00%
CGI 1.3/sec 0.00%
mod_ruby 6.5/sec 0.00%
mod_fastcgi 15.7/sec 0.00%
mod_fcgid 12.9/sec 0.05%

HTML ファイルは影舞の install.html。102.7/sec は測定パラメータ的に上限ですね。試しにスレッド数 50、ループ無限にしてみたら 390/sec ぐらいまで行きました。そのあたりで、JMeter を動かしてたマシンのほうがいっぱいいっぱいだったので、もっといくのかもしれません。

FastCGI だと mod_ruby の2倍ぐらいってところでしょうか。世の中的には mod_fcgid のほうがいいことになっていると思うのですが mod_fastcgi のほうが速いですね。mod_fcgid だと swap を起こすか起こさないかぐらいまでメモリを使っていたので設定が悪い可能性も高いです。あと、0.05% エラーでてました。

Windows 2000 + Apache 2.2.8 の場合

種類 スループット エラー
HTMLファイル 101.0/sec 0.00%
CGI 0.60/sec 0.00%
mod_fastcgi 6.1/sec 0.00%

同じ s30 です。CGI の結果はプロセス起動が遅いってことでしょう。mod_fastcgiLinux の半分ぐらいしか出ませんでした。メモリはまだ少し余裕があったので、それ以外のところで遅いようです。それでも、Windows 上で CGI で動かしてるなら mod_fastcgi を使いたいところですね。

Linux のほうは、mod_ruby で不満がなければわざわざ移行しなくてもいいかもしれません。