Home > MySQL | Windows | おすすめサイト > SQLの接続負荷テストに使える「Transaction Generator」

SQLの接続負荷テストに使える「Transaction Generator」

Transaction Generator

先日、会社で外部の業者に作らせたシステムが「Windows Server 2003 + MySQL」というシステムであった。

これでデータベースエンジンはInnoDBで作っているらしいので、当然トランザクションを使う。

まぁ、システムを作る段階で、なぜWindows Serverをチョイス?という疑問があったが、Windowsベースでのアプリケーションしかつけれない会社なので、しょうがないと言えばしょうがない。。。

なお、説明しておくと、このシステムの受注範囲は、CGIスクリプトとデータベースサーバ+クライアント。

うちの会社の主幹システムは強固なものであり、CGIスクリプトはきちんとロードバランサーなどが整備された強靱なシステムで動いているので問題はない。

しかし、そのスクリプトで受けたPOSTデータを流し込むのは、ルーターやNATなどを5つぐらい通った後のネットワークに接続されたWindows ServerのMySQL。

で、本番の日に、、、、案の定、MySQLが破綻した。。。

ほとんどサービスがうまく稼働していなかったに近い・・・・(ToT)

その日以降いろいろボトルネックを調べてみるが、CGIやネットワークには全く問題がないことが分かった。

怪しいのはやはりWindows ServerとMySQL。

ということで、外部に作らせたシステムだが、自分たちでSQLの負荷テストをやってみた。

MySQLのローカルでの負荷テストツールを探してみるが、Linux用などはいろいろ見つかるものの、Windowsのバイナリーのツールがなかなか見つからなかった。

で、最終的に見つけたのが、「TG – Transaction Generator -」。

このツールは、MySQLをはじめ、Oracle、PostgreSQLなど、商用・オープンソースのリレーショナルデータベースに向けて、セッション数とトランザクション数の負荷をかけることができるツールである。

ちなみに実行した画面はこんな感じ↓

Transaction Generator

上の画面は、Linuxサーバ+MySQLという構成での画面であるが、、、、

このツールは、testdbというデータベースを作成し、スキーマとテストデータ、インデックスなどをこのツールから流し込むことができる。

ちなみに、このツールを使って、Windows Server 2003 + MySQLという構成に上記と同じテストをしてみると、こうなった。。。

なんじゃこりゃ・・・

テストツールとしては、セッション数100、トランザクション数100を負荷として書けているのだが、ソケット数がじわじわ増加していき、それに伴ってトランザクション数も増えている、と言う感じだ。

なんだこりゃ・・・・

ちなみにLinux+MySQLの場合は、一気に100セッション開き、一気に100トランザクション実行している。

イケテナイ。。。。

Windows+MySQLはイケテナイ。

で、この結果を発注業者にたたきつけてやった(^^;)

本番の日であるが、CGIのログでは、ピーク時、1秒間に最大で約2400のPOST送信があった、ということらしいので、いかにこのシステムが瞬時に破綻したかが分かる(笑)

う~む・・・・

Windows+MySQLはイケテナイ。

というか、仮にこのシステムを使い続けることにした場合、どのように解決したらいいだろうか。

ご存じの方いらっしゃいましたら、ご伝授くださいませ(^^;)

トランザクション処理〈上〉―概念と技法
トランザクション処理〈上〉―概念と技法

トランザクション処理システム入門
トランザクション処理システム入門

関連記事

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.multiburst.net/sometime-php/2009/06/transaction-generator/trackback/
Listed below are links to weblogs that reference
SQLの接続負荷テストに使える「Transaction Generator」 from Sometime PHP

Additional comments powered by BackType

Home > MySQL | Windows | おすすめサイト > SQLの接続負荷テストに使える「Transaction Generator」

Subscribe This Blog
Subscribe This Blog
FeedBurner

Search
Categories
Tag Cloud
Twitter Counter
Archives
My Other Blogs
Translator
Japanese flagEnglish flag

Return to page top