Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

Passengerを2.2.15から3.0へ更新したので、ベンチマークを取りました

タスク管理にRedmineというRuby on Railsアプリを使っておりまして、それをApache上で動かすために、以前よりPassengerを使っておりました。
先月、これまでの1.3倍ほどに高速化されたというPassenger-3.0が出たそうです。
http://blog.phusion.nl/2010/10/18/phusion-passenger-3-0-0-final-released/


Redmine-1.0が問題なく動く事が確認出来たので、
更新したときのメモと、ApacheBenchの結果を以下に記載します。

インストール手順

sudo gem install passenger
sudo passenger-install-apache2-module

Apacheのpassenger.confの変更

インストール後の説明通り、ファイルパスを書き換えます。

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.15
 ↓
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.0/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.0

Apacheのpassenger.confのチューニング

特に何も設定しないとページの表示がもたつくので、メモリ2GBのWEBサーバには以下の設定で動かしています。
メモリが4GBほどあるなら、PassengerMaxPoolSizeを60にすると良いと思います。

PassengerMaxInstancesPerApp  0
PassengerMaxPoolSize         30
PassengerPoolIdleTime        1800

参考)
http://www.sssg.org/blogs/naoya/archives/1087

ベンチマーク

上記の設定を済ませた所で、ApacheBenchを使ってベンチマークします。
チケット数がおよそ2万ある、Redmineのログイン後のホームのページを並列性10で、100回叩いたときの1秒あたりの応答数を見ます。
こちらは数が多ければ多いほど良いという指標です。

環境

CentOS-5.5 x86_64
Intel Xeon L5520
・上記筐体の中にあるLinux KVMの仮想ゲストマシン環境
CentOS-5.5 x86_64
・Memory 2GB
Apache-2.2.3
Redmine-1.0
ruby-1.8.7
Rails-2.3.5

ベンチマーク方法

Phusion Passenger-2.2.15と3.0を切り替えてそれぞれ取得。
なお、Apacheを再起動した後の1回目は数値がぶれるので、2回目から4回分、データを取得しました。

$ ab -c 10 -n 100 「URL」
結果


回数
Passenger-2.2.15
Passenger-3.0
1回目 29.04 25.19
2回目 28.37 25.78
3回目 27.59 28.27
4回目 28.91 26.7
平均 28.4775 26.485

公式ブログでは旧バージョン2.2.15より36%高速化されたとありましたが、この組み合わせの場合には、平均値を見る限り特に差はないという結果となりました。
安定性も向上しているとの事なので、しばしこれで様子を見たいと思います。