Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
Tracは標準では全てのリクエストがcgi経由なので、よほどのマシンでないかぎり動作は非常にもっさりした感じになる。
通常のcgi経由で、100回リクエストを発行した場合(abコマンド)
Connection Times (ms)
min mean[+/-sd] median max
Connect: 12 12 0.2 12 13
Processing: 381 386 3.1 386 394
Waiting: 348 353 2.7 353 362
Total: 393 398 3.1 398 406
Percentage of the requests served within a certain time (ms)
50% 398
66% 400
75% 400
80% 401
90% 403
95% 404
98% 406
99% 406
100% 406 (longest request)
平均して秒間2.5件程度はさばける感じだ。
さてチューニングだが、通常2点の対応をする。
順に手順を書く。
まずは、mod_pythonを導入する。CentOSなら
次に、apacheの設定ファイルを変更する。
cgi経由で利用する場合は、以下のような設定になっていると思われる。
単に特定のURLの場合、Tracの環境変数を設定するのと認証の設定をしているだけ。
こいつをmod_python対応にすると、こうなる。TRAC_ENVの環境変数を外して、PYTHON_EGG_CACHE以下の5行を自分の環境に合わせて変更する。
以上が終わったら、apache再起動を実施だ。
上述の通り、cssやjsもcgi経由で読み込まれているので、こいつを直接参照するように変えた方が良い。
Tracでは通常、画像やjs等の部品が/usr/share/trac/htdocs/に配置されており、こいつを直接参照するようにするには以下の手順になる。
次にtrac.iniを開く。中にhtdocs_locationという設定項目があるので、
のように設定する。
最後にまた性能を見てみる。
Connection Times (ms)
min mean[+/-sd] median max
Connect: 12 12 0.2 12 13
Processing: 19 27 50.2 19 377
Waiting: 18 26 50.2 19 376
Total: 31 39 50.3 31 390
Percentage of the requests served within a certain time (ms)
50% 31
66% 32
75% 32
80% 32
90% 35
95% 49
98% 388
99% 390
100% 390 (longest request)
ということで、10倍程度の性能向上が出来ていることが分かる。
こりゃ絶対やらないといかんでしょ。
※abコマンドでは画像やcssは読み込まないので、単純にTracのページの性能になる。
コメントはありません。是非コメントしてください。