Starbug1 をnignxで動かしてみた
2010/08/22
nginx(「エンジンエックス」と発音) は、軽量高性能なWebサーバ/リバースプロキシであり、同時に電子メール(IMAP/POP3)プロキシである。BSD系ライセンスでリリースされている。
nginx – Wikipedia
Starbug1 がnginx+fcgiwrapでも動作するとのことでしたので、手元でも動かしてみました。手元のUbuntuでは、apache2がport 80で動作しているので、nginx関連はソースからコンパイルすることにしました。インストールは下のサイトを参考にしました。
nginx + fcgiwrap でcgiを動かす
apache2は port 80で動かしていて、nginxは port 81 で動かすようにしました。
nginx+fcgiwrapでもStarbug1が動作するようになったので、非常に簡単なベンチマークを取ってみました。
Starbug1 on apache2
% ab -n 1000 -c 10 'http://127.0.0.1/starbug1/index.cgi/Sand%20Box/list' Concurrency Level: 10 Time taken for tests: 6.839 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 14607000 bytes HTML transferred: 14392000 bytes Requests per second: 146.22 [#/sec] (mean) Time per request: 68.388 [ms] (mean) Time per request: 6.839 [ms] (mean, across all concurrent requests) Transfer rate: 2085.84 [Kbytes/sec] received
Starbug1 on nginx
% ab -n 1000 -c 10 'http://127.0.0.1:81/starbug1/index.cgi/Sand%20Box/list' Concurrency Level: 10 Time taken for tests: 10.863 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 14577000 bytes HTML transferred: 14395000 bytes Requests per second: 92.05 [#/sec] (mean) Time per request: 108.632 [ms] (mean) Time per request: 10.863 [ms] (mean, across all concurrent requests) Transfer rate: 1310.41 [Kbytes/sec] received
まとめ
apache2はapt-getでインストールしたもので、nginx関連はソースからコンパイルしたから条件としては、公平なベンチマークにはなってない可能性があります。軽量なnginxを使えるといいと思ったけど、apache2の方が速かった。nginxの場合はfcgiwrap経由してるから逆にオーバーヘッドになってると推測してみた。だとするとLightyでも同様のような気がする。
Starbug1は、apache2で動かすのが、簡単だし速い。という結論になりました。