Overview


コンセプトは「誰もが」・「手軽に」

TG - Transaction Generatorは、OracleやMySQLなどのリレーショナル・データベースに的を絞ったシンプルな負荷テストツールです。『誰もが手軽にデータベースシステムの負荷テストを行えること』をコンセプトに各種機能の設計が行われています。データベースの稼動診断やボトルネックの抽出、アプリケーションのチューニングなど、TGはデータベースシステムの様々なテストフェーズで利用頂くことができます。

<TGメイン画面>

TGのメイン画面

SQLベースの負荷テスト

TGはSQLベースでの負荷の生成を行います。通常、データベースシステムの負荷テストというと、ツールからウェブアプリケーションに対してHTTPリクエストを発行するのが一般的ですが、TGはSQL文をデータベースサーバに直接発行することによって負荷がけを行います。従ってTGを利用する場合、負荷テスト用にアプリケーションを別途準備する必要はありません。


あらゆるプラットフォーム・データベースに対応

<TGのアーキティクチャ>

TGのアーキティクチャ

TGは開発言語にJavaを使用しており、JVM(Java Virtual Machine)上で動作します。JVMはWindowsやLinux、また各種商用UNIX用のものが用意されており、TGは基本的に稼動OS・プラットフォームを選びません。TGは、データベースとの接続にJDBC(Java DataBase Connectivity)を使用します。従ってJDBCドライバがサポートされているデータベースであれば、TGはいかなるデータベースにも接続・負荷がけを行うことが可能です。

<Agentのデータベースへの接続>

データベースへの接続イメージ

TGはトランザクションを実行する際Javaの「Thread」を複数生成し、大量のユーザによる同時実行環境をエミュレートします。なおTGでは各 Threadを「Agent」と呼びます。Agentは個別にデータベースへ接続し、ランダムにトランザクションを実行します。

<トランザクションの実行>

トランザクション実行イメージ

TGはトランザクションとして登録された一連のSQL文をデータベースサーバへ直接発行することによって負荷を生成します。TGには複数のトランザクションを登録することができ、各トランザクションには実行比率を設定することができます。TGはこれらの実行比率に従い、実行するトランザクションを選択します。なお、トランザクションを構成するSQL文内には、乱数を使用することが可能です。例えば、Where句の条件に乱数を埋め込むことで、トランザクションが実行されるたびに異なるデータにアクセスすることができます。乱数の型には、整数型や文字列型・日付型などが使用可能です。


GUIベースでの操作

TG には操作用のインターフェースとして、対話形式のコマンドライン・インターフェースと、GUIベースのインターフェースである"TGC - TG Controller -" が提供されています。TGCを利用することで、トランザクションの構成やAgentの操作を簡単に行うことができます。また、TGとTGCはネットワークを経由して通信を行うため、TGとTGCを異なるノードに配置することが可能です。これは例えばTGを処理能力の高い UNIXサーバで実行させ、Windows PCから制御を行いたい場合などに役に立ちます。なお、現在TGCはWindowsとLinuxプラットフォームに提供されています。

<TGCによるTGの制御>

TGコントローラ
ダウンロード
c