マルチCPU環境でのTrac Lightning の処理速度改善(検証中)

概要

既存のApacheにリバースプロキシを設定し、複数のApacheサービスを起動させます。それぞれのサービスに処理をふることでCPUが複数ある場合に処理速度が遅くなる問題が改善されます。設定するサービスの数は2つ以上であれば処理速度は改善しますが、CPUと同じ数が一番パフォーマンス良いようです。

注意点

  • Trac Lightning 4.0を対象にしていますが、3.xでも動作すると思います
  • Trac Lightning でどうしても処理速度を早くしたい場合の非公式の手順です。通常はKanonを利用する方がいいでしょう
  • Trac LightningをインストールしたサーバーやPCが新しいのに遅い場合に有効です。サーバーが古い場合はあまり改善しない可能性が高いです
  • Trac Lightningをインストール、および必ずバックアップを取ってから実施して下さい。特に本番環境への適用は注意が必要です

作業手順

1.キーボードの Ctrl + Shift + Esc を同時に押してタスクマネージャーを起動します。パフォーマンスのタブをクリックするとCPUの数が確認できます。 下記の画像では3つになりますので、今回の例では3つのサービスを追加します。
CPUと同じ数のサービスを起動させると一番パフォーマンスが良くなりますが、起動するサービスの数を検討して下さい。 cpu.png

2.Trac Lightningをインストールしたフォルダを開き、[CollabNetSVN] - [httpd] - [conf] とフォルダを開きます。デフォルトだと C:\TracLight\CollabNetSVN\httpd\conf になります。

3.httpd.conf をコピーして、名称を変更します。わかりやすくするためにファイル名を httpd-8081.conf などのポート名を付けるといいかもしれません。
起動するサービスの数だけファイルをコピーします。 httpd-8081.conf 、httpd-8082.conf、 httpd-8083.conf としていきます。 02.png

4.エディタで httpd-8081.conf を編集します。エディタで Listen でキーワード検索します。

Listen 80
 80 を 8081 に変更して保存します。なお、ポートが重複した場合は別のポートを指定して下さい。
Listen 8081
04.png

5.作成した他のファイル(httpd-8082.conf、 httpd-8083.conf)も同様に80 を 8082、80 を 8083と 設定して保存します。

6.エディタで httpd.conf を編集します。(要バックアップ)

7.エディタで proxy でキーワード検索します。以下の行が表示されたら、mod_proxy_balancer.so と mod_proxy_connect.so の行頭の # を削除します。

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
 変更後
03.png

8.ファイルの最終行あたりに以下の設定を追記します。BalancerMember は作成するポートの数だけ記述します。手順3で作成した数、およびファイル名で設定したポートと同じになります。
ProxyPass / balancer://traccluster/
ProxyPassReverse / balancer://traccluster/
<Proxy balancer://traccluster/>
  BalancerMember http://127.0.0.1:8081
  BalancerMember http://127.0.0.1:8082
  BalancerMember http://127.0.0.1:8083
</Proxy>

9.httpd.conf ファイルを保存します。

10.Widnowsのスタートメニューから[コマンドプロンプト]を右クリックして [管理者として実行] で実行します。

11.サービスとして登録します。作成したconfファイルを指定して、以下のコマンドを実行して下さい。

httpd.exe -k install -n "TracLightning-8081" -f "C:\TracLight\CollabNetSVN\httpd\conf\httpd-8081.conf"
 残りのファイルも登録します。
httpd.exe -k install -n "TracLightning-8082" -f "C:\TracLight\CollabNetSVN\httpd\conf\httpd-8082.conf"
httpd.exe -k install -n "TracLightning-8083" -f "C:\TracLight\CollabNetSVN\httpd\conf\httpd-8083.conf"
06.png

12.コンピュータのアイコンを右クリックして、[管理]をクリックします。[サービスとアプリケーション]を開き、[サービス]をクリックします。TracLightning-8081などが追加されていることを確認して下さい。
service2.png

また、スタートアップの種類が自動になっていない場合はダブルクリックして[自動]に変更します。 service1.png

13.Windowsを再起動します。問題なければサービスでTracLightning-8081等のすべてが実行中と表示され、処理速度が改善されているはずです。
service2.png

なお、TracLightningのアンインストール時に追加登録したサービスは一緒に削除されませんので、以下のコマンドで別途削除して下さい。
httpd.exe -k uninstall -n "TracLightning-8081"