07 12 2005 Tweet
昨日は、負荷がかかったみたいで、サーバーが落ちてたようです。外からblosxomのエントリの編集ができないのも痛いんだけど、もっと痛いのは
davとかsubversionも使えなくなることだ
あーblosxomの負荷を軽くしなければ、というわけでLittleStoryからdynamic_cacheプラグインをダウンロードしてきて入れてみた。
RSSとかトップページにキャッシュが効いてくれるとやっぱ負荷も軽減されるんではなかろうかということで、abでベンチマークを取ってみた。
最初にキャッシュが利いてないとこんなに遅いです。
# ab -n 30 -c 3 /index.rss10 Requests per second: 0.32 [#/sec] (mean) Time per request: 9281.973 [ms] (mean) Time per request: 3093.991 [ms] (mean, across all concurrent requests) Transfer rate: 4.34 [Kbytes/sec] received
dynamic_cacheプラグインを導入すると結構速くなったので、結構満足します。がこれでも、ロボットに大暴れされるとツライよなぁ。
# ab -n 30 -c 3 /index.rss10 Requests per second: 0.93 [#/sec] (mean) Time per request: 3224.369 [ms] (mean) Time per request: 1074.790 [ms] (mean, across all concurrent requests) Transfer rate: 12.50 [Kbytes/sec] received
試しに、RSSを静的に出力してCGIじゃなくてアクセスすると格段に違います。CGIの起動の部分を何とかすればもっと速くなるのか?ってことでSpeedyCGIなんかもそそられます。
# ab -n 30 -c 3 /index.rss10 Requests per second: 223.46 [#/sec] (mean) Time per request: 13.425 [ms] (mean) Time per request: 4.475 [ms] (mean, across all concurrent requests) Transfer rate: 3128.40 [Kbytes/sec] received
ただし、うちだとファイルが存在する場合にはそっちを見にいくように.htaccessを書いているので、うまく静的なレンダリングを織り交ぜてやれば、負荷を下げられるのではなかろうか?
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ blosxom.cgi/$1 [L,QSA]
試しに、dynamic_cacheのキャッシュ先を、blosxom.cgi/以下に重なるように設定して、キャッシュではなくて半静的なレンダリングをしてみたが、index.htmlがらみでちょっと不具合チックな部分があるようです。あとrecache=allでばっさりrmされたりとか。
なんで、rssなんかは静的レンダリングさせといて、他のは普通にdynamic_cacheに任せつつ、speedyCGIなんかを入れてCGIスクリプトを常駐させて実行するようにするのがいいような気もする。
一番いいのはやっぱCGIが必要ない部分はCGIを使わないことだろうからなぁ。