FastCGIのパフォーマンス
Apache2+FastCGI+Railsでの、パフォーマンスに関する注意点。
Apache2にFastCGIを入れたけど、ぜんぜんfastじゃないなぁ・・と思っていろいろ試したところ、デフォルトから直すところがいくつかあったので、書いておきます。
FastCGIの起動はApacheの起動時に
dispache.fcgiは起動するのが遅いので、スレッドプールをApache起動時に作ってしまうのがいいと思います。
<IfModule mod_fastcgi.c>
FastCgiServer /rails/public/dispatch.fcgi \
-initial-env RAILS_ENV=production \
-processes 10
</IfModule>
FastCGIを経由するコンテンツを最小に
/rails/public/.htaccess は、デフォルトだと、なんでもかんでもdispatch.fcgiにRewriteされてしまうので、調整が必要です。
私はこれでハマッていたのですが、画像などが多くなると、FastCGIの起動時に応答が返ってこなくなることもありました。
RewriteCond %{REQUEST_URI} ^/images/.*
RewriteRule .* - [L]
正規表現を増やして静的コンテンツをFastCGIから外しまくると、かなり速くなるはずです。

