ここではMulti-server modeによるTGの操作方法について説明します。本機能により、複数のTGを同期して動作させ、大きなトランザクションを生成することが可能です。
以下の図では、Server.BとServer.CのTGが同期しながら、Server.DのOracleデータベースに対して負荷がけを行うことを示しています。
Server.BとServer.CのTGは、"Master server"と"Slave server"の関係となり、Agentの制御はすべてMaster serverから実行されます。また、TG Controller(TGC)を使用してTGの制御を行う場合、TGCはMaster serverと接続し、GUIによるTGの操作を可能にします(※下図では、TGCはServer.Aにて動作しています)。

1. ServerモードでのTGの起動 @Server.B,C
Server.BとServer.Cにて、TGをサーバモードで起動します。Windows環境の場合、TGの起動バッチファイル「tg.bat」に「-server」オプションを指定して実行してください。
C:\> cd tg08X C:\tg08X> tg -server
Linuxや商用UNIX環境では、TGの起動シェルスクリプト「tg.sh」に同じく「-server」オプションを指定してください。コマンドの最後に「&」を付けることで、TGをバックグラウンド実行することも可能です。
$ cd tg08X $./tg.sh -server &
以下のようなメッセージが表示されれば、サーバモードでのTGの起動は完了です。デフォルトではTGはポート番号「11111」にてTGCからの接続を待機します。もしポート番号を変更したい場合には、オプション「-port <ポート番号>」を追記し、ポート番号を変更することが可能です。
TG - Transaction Generator - [ Version 0.8X ] Wed May 03 23:32:47 JST 2006 Loading configration file... OK. Registerd transactions:2 , variables:2 , jobs:5 Loading Oracle JDBC driver... OK. Checking specified address & Port is possible to use... OK. Now TG is running in "SERVER_FOR_TERMINAL". - Listening Address : 0.0.0.0 - Port : 11111 if you forcely terminate this program , press "CTRL+C" in this console, or kill TG process.
2. Master Serverへの接続 @Server.A
Server.AにてTGCを起動します。エクスプローラから「tgc.exe」ファイルをダブルクリックするか、コマンドプロンプトより以下のように入力してください。
C:\> cd tg08X C:\tg08X> tgc
TGCのメインウィンドウより「TG」メニューをクリックし、「Specify and connect TG...」を選択してください。
- ローカルのTGが起動してしまった場合には、まずローカルのTGを停止させる必要があります。詳しくは、「サーバ・モードの使い方 > 2. TGCの起動(@Server.B)」をご覧ください。

以下の「Specify and connect to TG...」ウィンドウにて、Master serverとなるServer.Bのホスト名とポート番号(デフォルト:11111)を指定し、「OK」ボタンをクリックしてください。

接続に成功した場合、以下のようなログインメッセージが表示されます。
TG - Transaction Generator 0.8X Sat May 10 22:33:02 JST 2008 logged in. TG>
なお、ここで一時的にMaster serverの機能を「OFF」にしておきます。 TGCのメインウィンドウより「TG」メニューをクリックし、「Enable Master server」を選択し、必用に応じてチェックを外してください。

3. コンフィグレーションのロード @Server.A
Slave serverと接続を行う前に、コンフィグレーションファイルのロードを行います。ここでは例として「sample.tgp」を使用します。「ファイル」メニュークリックし、「Open」を選択、「C:\tg08X\sample.tgp」ファイルをオープンします。

正常にコンフィグレーションファイルが読み込まれた場合、「TG Console」に次のメッセージが出力され、TGと情報の同期が行われます。
TG> Syncronization has completed succesfully. TG> reload config Loading configration file... .OK. Registered transactions:4 , variables:5 , jobs:1 , slave servers:0 TG>
4. Slave serverの登録・接続 @Server.A
ここで、Slave server(Server.Cで動作しているTG)の情報を登録します。TGCのメインウィンドウより「TG」メニューをクリックし、「Congigure TG...」を選択してください。

以下の「Configure TG...」ウィンドウの「MultiServers」タブを選択後、「Registered slave servers」画面にて右クリックし、「Add new server」を選択します。

「Slave server configuration」画面にて、Slave serverとなるServer.Cのホスト名とポート番号(デフォルト:11111)を指定し、「OK」ボタンをクリックしてください。

再度TG(Master server)との情報同期が行われます。正常に同期が行われた場合、「TG Status」にSlave serverに関する情報が表示されます(下図赤色の部分です)。

ここで、Master server機能を有効化します。 TGCのメインウィンドウより「TG」メニューをクリックし、「Enable Master server」を選択し、チェックを付けてください。

正常にSlave serverに接続できた場合、「TG Console」に次のメッセージが出力され、Master server と Slave server間の情報の同期が行われます。
TG> masterserver on Multi server mode : "ON". Connecting to slave servers. - serverc[11111] .... Connected. Synchronizing configuration with slave servers. - serverc[11111] .... Completed. TG>
TGCメインウィンドウ左の「TG Status」画面の「SlaveServer1 > Server Status」および「TERMINATED」行を確認してください。
Server Statusが"UNKNOWN"から"ONLINE"に変化していることによって、Master serverとSlave serverの通信が確立していることが確認できます。
また、TERMINATEDが"10"から"20"に変化していますが、これは、Master serverとSlave serverとで、各10づつのAgentが生成されるため、合計値である"20"が表示されます。つまり、「CONNECTED」・「DISCONNECTED」・「TERMINATED」・「ERROR」・「TPS」は、全TG serverのサマリー情報が表示されることになります。

5. トランザクションの実行
TGCのメインウィンドウより「Agent」メニューをクリックし、「Make agnets connect to the target database」を選択、Agentをターゲットデータベースに接続させます。

続いてTGCメインウィンドウより「Agent」メニューをクリックし、「Activate agents」を選択してください。これにより負荷がけ(トランザクションの実行)が開始されます。

6. 性能の測定
トランザクションを実行させた状態で性能測定を行います。特に各Master server、Slave serverの詳細情報を確認したい場合には、TGCのメインウィンドウより「Monitor」メニューをクリックし、「Monitoring start > Show details」を選択します。

コンソール画面にトランザクションの実行状態が出力されます。大きくフィールドは「Summary」と「Details」のふたつにわかれています。 Summaryでは全TGのトランザクション数やエラーの合計値が出力され、Detailsでは、Master serverやslave serverの個別のトランザクション実行状況が示されています。
TG> monitor details 600
Monitoring start. [ 600 Seconds ]
[Summary] 22:56:37 TRGT:ACTV CONN:20/20 DISC:0/20 TERM:0/20 ERR:0 TPS:20
[Details]
HOSTNAME PORT SERVER STATUS TARGET AGENT STATUS CONN DISC TERM ERROR TPS
======== ===== ============= =================== ===== ==== ==== ===== ===
SYSTEM ACTIVE 10/10 0/10 0/10 0 10
serverc 11111 ONLINE ACTIVE 10/10 0/10 0/10 0 10
[Summary] 22:56:38 TRGT:ACTV CONN:20/20 DISC:0/20 TERM:0/20 ERR:0 TPS:20
[Details]
HOSTNAME PORT SERVER STATUS TARGET AGENT STATUS CONN DISC TERM ERROR TPS
======== ===== ============= =================== ===== ==== ==== ===== ===
SYSTEM ACTIVE 10/10 0/10 0/10 0 10
serverc 11111 ONLINE ACTIVE 10/10 0/10 0/10 0 10
デフォルトでは10分後に計測が終了します。「Average TPS:」の値が10分間あたりの平均TPS値になります。
[Summary] 23:06:36 TRGT:ACTV CONN:20/20 DISC:0/20 TERM:0/20 ERR:0 TPS:20
[Details]
HOSTNAME PORT SERVER STATUS TARGET AGENT STATUS CONN DISC TERM ERROR TPS
======== ===== ============= =================== ===== ==== ==== ===== ===
SYSTEM ACTIVE 10/10 0/10 0/10 0 10
serverc 11111 ONLINE ACTIVE 10/10 0/10 0/10 0 10
---- TRANSACTION REPORT ( SUMMARY ) ------------------
MONITORING PERIOD
~~~~~~~~~~~~~~~~~
- Begin : Sat May 10 22:56:37 JST 2008
- End : Sat May 10 23:06:36 JST 2008
THROUGHPUT
~~~~~~~~~~
Transaction name Min Max Average
================ === ===== =======
SELECT0 0ms 110ms 2.64ms
INSERT0 0ms 94ms 9.27ms
UPDATE0 0ms 47ms 4.76ms
DELETE0 0ms 125ms 2.66ms
TPS
~~~
- Total transaction count : 11954
- Monitoring time : 600 seconds
- Average TPS : 19.92
TG>
計測を途中で終了させたいような場合には「Monitor」メニューをクリックし、「Monitoring stop forcely」を選択してください。また計測期間を変更する場合は「Specify monitoring period」を選択し、計測時間を秒単位で入力してください。
7. トランザクションの終了
トランザクションを終了したい場合には、まず「Agent」メニューより「Freeze agents」を選択し、トランザクションの実行を停止させます。

続いて「Agent」メニューより「Make agents disconnect from database」を選択し、セッションを終了させてください。

以上でマルチサーバ・モードの使用方法についての説明は終了です。


