Trac on Windows(3)

いまTracの評価用に使っているPCのスペックはWindows XP Pro + Pentium4 3GHz + MEM 1GBなんだけど、同じマシンからIEでアクセスすると、どの画面もTAT(turn-around time;つまりマウスカーソルが砂時計から戻る間までの時間)は9秒ちょっと位かかる。遅い。遅すぎる。ちなみにUnder 1GHzのマシンでやってみたら30秒でしたとさ。えっ?それが本番機。嘘でしょorz。

ということでTracの高速化を試してみる。方法はもちろんmod_python。参考にしたのは以下のページ。

mod_pythonのインストール

mod_python

http://httpd.apache.org/modules/python-download.cgi

からOther Binaries (Including Win32) → win/ → 3.2.8/ とクリック(3.2.8/は最新版のディレクトリ)。ここから mod_python-3.2.8.win32-py2.3.exe をDownload。

→Other mirrors:に http://ftp.kddilabs.jp/infosystems/apache/ を指定すると、ファイル名が全て表示されるので探しやすい。

そしてDownlaodした上記ファイルをダブルクリック。途中でApache2のインストールディレクトリ(ex. C:\Program Files\Apache Group\Apache2)を入力。これでApache2\modulesにmod_python.soが追加される。

httpd.confの調整

まずインストールしたmod_pythonを有効にするため、以下の1行を追加。

LoadModule python_module modules/mod_python.so

次にmod_python用の定義を追加する。

<Location "/projects/Proj1">
	AuthType Basic
	AuthName "trac Proj1"
	AuthUserFile c:\svnrepos\conf\Proj1_passwd
	Require valid-user
</Location>
        ↓
<Location "/projects/Proj1">
	SetHandler mod_python
	PythonHandler trac.web.modpython_frontend 
	PythonOption TracEnv c:/trac/Proj1
	#PythonOption TracUriRoot /projects/Proj1
	
	AuthType Basic
	AuthName "trac Proj1"
	AuthUserFile c:\svnrepos\conf\Proj1_passwd
	Require valid-user
</Location>

このうちTracUriRootは「最初指定しないで実行してURLが正しく生成できなければ使え」ということなので「指定なし」で試してみたら大丈夫そうだったのでコメントのままにしてある。

これでApacheを再起動すればOK。

mod_pythonの効果

劇的。評価用PCで9秒だったTATが1秒以下。サクサク動く感じ。これなら本番機でも3秒位になるかな。あとでやってみよ。

mod_pythonの効果(2)

Under 1GHzの本番機にも適用。約35秒が1秒前後になった。すげー。ロースペックなマシンにはcgiは酷だということがよくわかった。