平衡点
2013/09/07
_ tDiary を Ruby1.9.3 + Apache2 + FCGI で動かす
読んで題字の如く. 以前もじたばたした記憶があるのだけれど, 今回は非常に楽だった.
環境
使っているモノは以下の通り:
- OS :: Debian 7.1 Wheezy
- tDiary :: version 4.0.0, 野良パッケージ
- Ruby :: 1.9.3, Debian 公式
- libapache2-mod-fcgid :: Debian 公式
- libfcgi-ruby1.9.1 :: Debian 公式
以前[ 平衡点(2006-10-11) ] は最後に fcgiwrap を使っていたけれど, tDiary 側で index.fcgi, update.fcgi を用意してくれているので, これを使えば良い.
導入
apt-get 一発なので省略
設定
.htaccess の該当部分を以下の様に修正
# source: apache AddHandler fcgid-script .fcgi DirectoryIndex index.fcgi AddType application/xml .rdf RewriteEngine on RewriteBase /log RewriteRule ^([0-9\-]+)\.html$ index.fcgi?date=$1 RewriteRule ^([0-9\-]+)p?([0-9]*)\.html$ index.fcgi?date=$1&p=$2 [L]
index.fcgi, update.fcgi は以下の通り:
index.fcgi:
# source: ruby #! /usr/bin/env ruby load '/usr/share/tdiary/index.fcgi'
update.fcgi:
# source: ruby #! /usr/bin/env ruby load '/usr/share/tdiary/index.fcgi'
あと, この環境は suexec で動作させているので permission は 701 で.
結果
ab -n 30 -c 3 の結果比較:
素の index.rb(これまで)
Requests per second: 3.40 [#/sec] (mean) Time per request: 882.231 [ms] (mean) Time per request: 294.077 [ms] (mean, across all concurrent requests)
index.fcgi(fcgi 化)
Requests per second: 8.32 [#/sec] (mean) Time per request: 360.723 [ms] (mean) Time per request: 120.241 [ms] (mean, across all concurrent requests)
...2.4倍速ぐらい? こんなモンかな.