2006/10/14

tDiaryのfastCGI化

公開するような内容では無い日記(何を食べたとか、内輪の誰かが○○と言っていたみたいな内容)を、ローカル環境にhttpd立ててtDiaryで日記を付けているんだけど、最近妙にtDiaryの起動が遅いので、FastCGI化してみた。
そもそもローカルで遅いってのがあり得ないんだけど、FastCGIに興味があったのでやってみる。
参考にしたサイトは Apache2でmod_deflateとmod_fastcgi / tDiaryをFastCGI化
基本的にFastCGIに関しては、別プロセスでコードを保持して、FastCGIプロトコルで通信する事でCGIとは違って起動プロセスやキャッシュを有効活用できるみたいな概要と、ruby-fcgiのREADME程度の知識しかないので、もう、手探り。rubygemsでfcgiをインストールしているので、require_gemでfcgiをロードするとか以外の変更はなしで、参考サイトのまんまです。
かなり速くなったとおもいつつも、ab(ApacheBench)でパフォーマンス測定していたら、apacheのログが膨大な事に気づく。ローカルだからログは気がついた時に適当に削除するし、開発環境でもあるのでログはいつの間にかローテーションされると困るので、ローテーションせずに貯めっぱなしだった。
abはログが直ぐに膨らむので、チェックしたら妙に溜まってる事に気づいて、これらを削除したら普通のCGIでも結構速くなった。遅かった原因はこれか?あんまり関係ないかな?うーむ。
何はともあれ、それでもCGIよりFastCGIの方が30%ぐらい高速。abのnオプションを100ぐらいに増やすと400%ぐらい高速なんだけどね。ローカルだから同時アクセス等無い。
結局、違いが体感できないぐらいCGIもきびきび動いてるけどね。
まぁ、色々勉強になった。