apacheとthinとmongrelを速度比較してみた。

明日のセミナーに向けて、
セミナー用の資料作ってた時、ついでにパフォーマンスチェックをおこなってみた。


Apache2.2に静的ファイルをおいたのと、thinのpublicに静的ファイルをおいた場合と
mongrelに静的ファイルをおいた場合。
さらにapp/views/portal/index.html.erbとpublic/index.htmlの2箇所においた場合のthinとmongrelの速度比較。


それぞれapachebenchで100の同時アクセス、総アクセス10000をやってみました。


結論から言うと、thinはmongrelより全然早かった。
apache>>thin>>mongrelのような形。


と言うわけで検証結果を。

総合時間 1秒間の処理数 1リクエストの平均時間
apacheのpublic 2.996596 3337.12 29.966
thinのpublic 6.86351 1643.02 60.864
thinのapp 17.181393 582.03 171.814
mongrelのpublic 14.18051 713.37 140.181
mongrelのapp 36.275223 275.67 362.752

静的なファイルの表示だけでも、apacheの倍ぐらいかかるのにびっくり。
せいぜい1.1~1.2倍ぐらいですむと思ってました。
まあ、何回かやるとそのたびに結果かわったんで、検証環境の問題もありそうですが。


後、mongrelとthinの動作速度の差にも驚きですね。
2〜3倍違う。


一応、app/views/に配置したファイルも、rubyの処理とかは一切してないのですが、
railsってやっぱ重いですね。