= マルチ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つのサービスを追加します。[[br]]
CPUと同じ数のサービスを起動させると一番パフォーマンスが良くなりますが、起動するサービスの数を検討して下さい。
[[Thumb(cpu.png)]]
[[br]][[br]]
2.Trac Lightningをインストールしたフォルダを開き、![CollabNetSVN] - ![httpd] - ![conf] とフォルダを開きます。デフォルトだと C:\TracLight\CollabNetSVN\httpd\conf になります。
3.httpd.conf をコピーして、名称を変更します。わかりやすくするためにファイル名を httpd-8081.conf などのポート名を付けるといいかもしれません。[[br]]
起動するサービスの数だけファイルをコピーします。 httpd-8081.conf 、httpd-8082.conf、 httpd-8083.conf としていきます。
[[Thumb(02.png)]]
[[br]][[br]]
4.エディタで httpd-8081.conf を編集します。エディタで Listen でキーワード検索します。
{{{
Listen 80
}}}
80 を 8081 に変更して保存します。なお、ポートが重複した場合は別のポートを指定して下さい。
{{{
Listen 8081
}}}
[[Thumb(04.png)]]
[[br]][[br]]
5.作成した他のファイル(httpd-8082.conf、 httpd-8083.conf)も同様に80 を 8082、80 を 8083と 設定して保存します。 [[br]][[br]]
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
}}}
変更後[[br]]
[[Thumb(03.png)]]
[[br]][[br]]
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"
}}}
[[Thumb(06.png)]]
[[br]][[br]]
12.コンピュータのアイコンを右クリックして、![管理]をクリックします。![サービスとアプリケーション]を開き、![サービス]をクリックします。TracLightning-8081などが追加されていることを確認して下さい。[[br]]
[[Thumb(service2.png)]]
[[br]][[br]]
また、スタートアップの種類が自動になっていない場合はダブルクリックして![自動]に変更します。
[[Thumb(service1.png)]]
[[br]][[br]]
13.Windowsを再起動します。問題なければサービスでTracLightning-8081等のすべてが[実行中]と表示され、処理速度が改善されているはずです。[[br]]
[[Thumb(service2.png)]]
[[br]][[br]]
なお、TracLightningのアンインストール時に追加登録したサービスは一緒に削除されませんので、以下のコマンドで別途削除して下さい。
{{{
httpd.exe -k uninstall -n "TracLightning-8081"
}}}