|
||||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||||
| ベンチマーク試験内容 | ||||||||||||||
|
ベンチマーク試験用アプリケーションには「JDBCBench(注1)」を使用しました。
※注1:
JDBCBenchは、TPCベンチマーク試験の中のTPC-Bを参考にし、オフラインでのバッチ処理をモデル化したベンチマーク試験です。現在、TPC-Bベンチマーク試験自体は廃止されているものの、JDBCBenchはPostgreSQL/MySQLそれぞれのベンチマークツールとしてよく利用されている「pgbench」「mysqlbench」と同様の試験を行えます。 ベンチマークテスト用のデータベースとしては、「branches」「tellers」「accounts」「history」の4つのテーブルを使用します。JDBCBenchは、この4つのテーブルに対して以下の5つのSQL文を1つのトランザクションとして実行します。
update accounts set abalance = abalance + 変数 where aid = 変数
指定された回数分だけこのトランザクションを実行し、その時の処理時間を計測します。そしてその処理時間を元に、TPS(トランザクション/秒)値を結果として出力します。 またJDBCBenchは、このトランザクション処理を同時に実行するクライアント数を設定することができます。この同時実行クライアント数を大きな値に設定することにより、データベースサーバに大きな負荷をかけることができます。 |
||||||||||||||
| 測定内容 | ||||||||||||||
|
ではJDBCBenchを使用して、今回実施した測定内容について解説します。 まずデータベースですが、ベンチマーク試験に使用する4つのテーブルの初期レコード数を次の通り設定しました。
表3:各テーブルの初期レコード数 そしてこの初期状態のデータベースに対して、同時実行クライアント数が「1、5、10、20、30、40、50、60、70、80、90」の時のTPS値を測定しました。各クライアントが実行するトランザクション数は、それぞれ1,000回としました。よってクライアント数が90の時は、90,000回のトランザクション処理が実行されることになります。 また、PostgreSQLとMySQL+InnoDBエンジンのトランザクション分離レベルは、ともにリードコミッティドに設定しました。 以上が今回実施したベンチマーク試験の測定内容です。この測定内容を以下の6種類のデータベース環境に対して実施し、TPS値を計測しました。
表4:TPS値を測定したベンチマーク なお、PostgreSQLのベンチマーク試験の場合に限り、TPS測定の前にフルVaccumとREINDEX処理を毎回実施しました。 |
||||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||
|
|
||||||||||||||
|
||||||||||||||

