はじめに
今回の記事では、BenchBase というベンチマークツールについて紹介してみたいと思います。
弊社では、データベースの性能評価やワークロードのシミュレーション、検証にベンチマークツールをよく使用しています。
主に MySQL 用のベンチマークツールとしてメジャーな以下の利用頻度が高いです。
もし TPC ベンチマーク(派生ワークロード)を実行したい場合は、以下のツールを個別で準備することになります。
今回、これらのツールでは実装されていない(または実行できない)、とあるベンチマークを実行する要件があり、それが実現できる BenchBase にたどり着きました。
試用してみたところ、非常に使い易い便利なソフトウェアだったので、普及がてら紹介させていただきます。
上に挙げたベンチマークツール各種については、弊社の過去ブログ記事でも取り上げていますので、ぜひチェックしてみてください。
BenchBase とは
カーネギー・メロン大学データベースグループのプロジェクトで開発された OSS のベンチマークフレームワークです。
GitHub – cmu-db/benchbase: Multi-DBMS SQL Benchmarking Framework via JDBC
BenchBase – Carnegie Mellon Database Group
元々は OLTP-Bench として開発されていたものを進化・改名したプロジェクトだそうです。
以下が主な特徴として挙げられます。
-
多数の商用・オープンソースDBMS に対応しています。
- PostgreSQL
- MySQL
- MariaDB
- Oracle
- SQL Server
- CockroachDB
- SQLite
- Apache Phoenix
- Spanner
-
多種多用なベンチマークスイートを BanchBase から実行することができます。
現在のバージョンでは、16種類ものベンチマークが実装されています。- AuctionMark
- CH-benCHmark
- Epinions.com
- NoOp
- OT-Metrics
- Resource Stresser
- SEATS
- SIBench
- SmallBank
- TATP
- TPC-C
- TPC-H
- Voter
- Wikipedia
- YCSB
様々なワークロードをシミュレートするベンチマークが揃っている他、負荷掛け用のものも用意されています。
各ベンチマークの説明については、以下から参照できます。 -
Java で開発されており、JDBC ドライバを介してデータベースアクセスを行います。
XML の設定ファイルでワークロード定義し、コマンドラインでオプションを指定して実行します。
インストールも容易で、設定を柔軟に行うことができ、実行方法も分かりやすいです。
ベンチマークの再現・再実行がしやすい設計となっています。
また、新たなワークロード(独自ベンチマークなど)の追加やデータベースへの対応を容易に拡張できるようなつくりになっています。
-
スループットやレイテンシなどのベンチマーク結果が自動的にレポートファイル(JSON,CSV)として生成されます。
インストール
今回使用した環境構成は以下の通りです。
-
ベンチマーク実行クライアント
12$ cat /etc/system-releaseOracle Linux Server release 8.10 -
ベンチマーク対象データベース
本記事では MySQL 8.4 を対象に検証を行いました。
12# mysqld --version/usr/sbin/mysqld Ver 8.4.4 for Linux on x86_64 (MySQL Community Server - GPL)
ベンチマーク実行クライアントに BenchBase をインストールします。
現時点のリリースバージョンでは、 Java 23 で動作します。
https://github.com/cmu-db/benchbase/issues/612
jar ファイルの直接の提供はないので(将来的には予定している模様)、ソースコードから実行形式バイナリをコンパイルして使用します。
docker なら java インストール不要で実行できますので、環境によっては docker も使えるのが良いところです。
https://github.com/cmu-db/benchbase?tab=readme-ov-file#how-use-with-docker
-
今回の例では Oracle JDK 23 をインストールします。
1$ sudo dnf install -y https://download.oracle.com/java/23/archive/jdk-23.0.2_linux-x64_bin.rpm1234$ java --versionjava 23.0.2 2025-01-21Java(TM) SE Runtime Environment (build 23.0.2+7-58)Java HotSpot(TM) 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing) -
Github リポジトリからソースコードをクローンし、mvnw コマンド一発でビルドできます。
123$ git clone --depth 1 https://github.com/cmu-db/benchbase.git$ cd benchbase/$ ./mvnw clean package -P mysql-P
オプションで実行対象の DBMS プロファイル名を指定することがポイントです。コンパイル後、
HSQLDB
を使って内部で動作テストが行われます。
実行環境にもよりますが数分間かかるので、しばらく待ちましょう。12345678910[INFO] Reading assembly descriptor: src/main/assembly/tgz.xml[INFO] Reading assembly descriptor: src/main/assembly/zip.xml[INFO] Building tar: /home/opc/benchbase/target/benchbase-mysql.tgz[INFO] Building zip: /home/opc/benchbase/target/benchbase-mysql.zip[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 04:46 min[INFO] Finished at: 2025-04-23T13:01:02+09:00[INFO] ------------------------------------------------------------------------無事完了すると、
target
ディレクトリ配下に実行用ファイル一式のディレクトリ(benchbase-mysql
)が圧縮アーカイブされて生成されています。
このままの場所でも、任意の場所に移動しても可能です。123$ cd target$ tar -xf benchbase-mysql.tgz$ cd benchbase-mysql
実行方法、オプションの説明
コマンドラインヘルプを表示させてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ java -jar benchbase.jar -h usage: benchbase --anonymize <arg> Anonymize specified datasets using differential privacy -b,--bench <arg> [required] Benchmark class. Currently supported: [tpcc, tpch, tatp, wikipedia, resourcestresser, twitter, epinions, ycsb, seats, auctionmark, chbenchmark, voter, sibench, noop, smallbank, hyadapt, otmetrics, templated] -c,--config <arg> [required] Workload configuration file --clear <arg> Clear all records in the database for this benchmark --create <arg> Initialize the database for this benchmark -d,--directory <arg> Base directory for the result files, default is current directory --dialects-export <arg> Export benchmark SQL to a dialects file --execute <arg> Execute the benchmark workload -h,--help Print this help -im,--interval-monitor <arg> Monitoring Interval in milliseconds -jh,--json-histograms <arg> Export histograms to JSON file --load <arg> Load data using the benchmark's data loader -mt,--monitor-type <arg> Type of Monitoring (throughput/advanced) -s,--sample <arg> Sampling window |
--bench
と --config
が必須オプションとのことです。
具体的には以下のように指定して、データロードや実行要否を組み合わせて実行します。
1 2 3 4 5 6 |
$ java -jar benchbase.jar \ --bench=tpcc \ --config=config/mysql/sample_tpcc_config.xml \ --create=true \ --load=true \ --execute=true |
なお、--monitor-type
オプションについては、PostgreSQL と SQL Server のみ有効で、MySQL は未実装で今後対応予定とのことです。
デフォルトでは、SHOW GLOBAL VARIABLES
や SHOW STATUS
をベンチマーク実行に収集してくれますが、
さらにパフォーマンススキーマや SHOW ENGINE INNODB STATUS
も追加になりそうで期待大です。
--dialects-export
で実行 SQL をエクスポートしたり、--json-histograms
でベンチマーク結果のヒストグラム統計情報 JSON データを出力できるのも便利です。
TPC-C で試してみる
TPCベンチマークの、OLTP 向けテストとしてメジャーな TPC-C を試してみたいと思います。
まずは、対象データベースにベンチマーク用のユーザとスキーマを作成しておきます。(権限は検証のため ALL 指定)
1 2 3 |
mysql> CREATE USER benchbase IDENTIFIED BY 'B3nch1b@se'; mysql> CREATE DATABASE bb_tpcc; mysql> GRANT ALL ON bb_tpcc.* TO benchbase; |
つぎに設定ファイルを編集していきます。
設定ファイルは config/mysql
ディレクトリ内に各ベンチマークごとにサンプルが用意されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$ tree config/mysql/ config/mysql/ ├── sample_anonymization_config.xml ├── sample_auctionmark_config.xml ├── sample_chbenchmark_config.xml ├── sample_epinions_config.xml ├── sample_hyadapt_config.xml ├── sample_noop_config.xml ├── sample_otmetrics_config.xml ├── sample_resourcestresser_config.xml ├── sample_seats_config.xml ├── sample_sibench_config.xml ├── sample_smallbank_config.xml ├── sample_tatp_config.xml ├── sample_templated_config.xml ├── sample_tpcc_config.xml ├── sample_tpcds_config.xml ├── sample_tpch_config.xml ├── sample_twitter_config.xml ├── sample_voter_config.xml ├── sample_wikipedia_config.xml └── sample_ycsb_config.xml 0 directories, 20 files |
今回は sample_tpcc_config.xml
を変更して使います。
benchbase/config/mysql/sample_tpcc_config.xml at main · cmu-db/benchbase · GitHub
便宜上 XML の内容を分割してセクションごとに解説していきます。
最初の箇所はデータベース接続情報です。
1 2 3 4 5 6 7 8 9 |
<!-- Connection details --> <type>MYSQL</type> <driver>com.mysql.cj.jdbc.Driver</driver> <url>jdbc:mysql://localhost:3306/benchbase?rewriteBatchedStatements=true&allowPublicKeyRetrieval=True&sslMode=DISABLED</url> <username>admin</username> <password>password</password> <reconnectOnConnectionFailure>true</reconnectOnConnectionFailure> <isolation>TRANSACTION_SERIALIZABLE</isolation> <batchsize>128</batchsize> |
jdbc:mysql://localhost:3306/benchbase
の部分と <username>
,<password>
を、環境に合わせて修正します。
MySQL Connector/J の JDBC ドライバプロパティもここで設定できます。
BanchBase が使用する JDBC ドライバの名称やバージョンは、mvn の pom.xml から確認できます。
benchbase/pom.xml at main · cmu-db/benchbase · GitHub
現在のバージョンで、MySQL プロファイルの場合は
MySQL Connector/J 8.0.30
が使用されています。
また、トランザクション分離レベルは以下から選択可能で、デフォルトは TRANSACTION_SERIALIZABLE
です。
- TRANSACTION_SERIALIZABLE
- TRANSACTION_READ_COMMITTED
- TRANSACTION_REPEATABLE_READ
- TRANSACTION_READ_UNCOMMITTED
今回の検証環境の例では、以下のように修正しました。
1 2 3 4 5 6 7 8 9 |
<!-- Connection details --> <type>MYSQL</type> <driver>com.mysql.cj.jdbc.Driver</driver> <url>jdbc:mysql://10.0.0.251:3306/bb_tpcc?rewriteBatchedStatements=true&allowPublicKeyRetrieval=True&sslMode=DISABLED</url> <username>benchbase</username> <password>B3nch1b@se</password> <reconnectOnConnectionFailure>true</reconnectOnConnectionFailure> <isolation>TRANSACTION_REPEATABLE_READ</isolation> <batchsize>128</batchsize> |
次に Scale factor の設定箇所です。
1 2 |
<!-- Scale factor is the number of warehouses in TPCC --> <scalefactor>5</scalefactor> |
TPC-C の場合、倉庫数となり、テストデータ量の調整を行います。
次の箇所がワークロード定義です。
1 2 3 4 5 6 7 8 9 |
<!-- The workload --> <terminals>1</terminals> <works> <work> <time>60</time> <rate>10000</rate> <weights>45,43,4,4,4</weights> </work> </works> |
terminals
は同時実行クライアント数を指定します。今回は 10 に変更しました。time
はベンチマーク実行時間(秒)を設定します。rate
は秒間リクエスト数の制限値を設定します。- 制限不要な場合は
disabled
、無制限にする場合はunlimited
と設定します。
- 制限不要な場合は
weights
はそのベンチマーク内で実行される各トランザクションの実行数比率(重み付け)を設定します。
最後のセクションが、ベンチマーク固有のトランザクションタイプごとの設定です。
TPC-C ベンチマークでは5つのトランザクションが定義されています。
前述の weights
はこれらに対して重み付けを設定することになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!-- TPCC specific --> <transactiontypes> <transactiontype> <name>NewOrder</name> <!--<preExecutionWait>18000</preExecutionWait>--> <!--<postExecutionWait>12000</postExecutionWait>--> </transactiontype> <transactiontype> <name>Payment</name> <!--<preExecutionWait>3000</preExecutionWait>--> <!--<postExecutionWait>12000</postExecutionWait>--> </transactiontype> <transactiontype> <name>OrderStatus</name> <!--<preExecutionWait>2000</preExecutionWait>--> <!--<postExecutionWait>10000</postExecutionWait>--> </transactiontype> <transactiontype> <name>Delivery</name> <!--<preExecutionWait>2000</preExecutionWait>--> <!--<postExecutionWait>5000</postExecutionWait>--> </transactiontype> <transactiontype> <name>StockLevel</name> <!--<preExecutionWait>2000</preExecutionWait>--> <!--<postExecutionWait>5000</postExecutionWait>--> </transactiontype> </transac |
また、このサンプルの設定ファイルではコメントアウトされていますが、実行前後の待ち時間を設定可能なようです。
実行準備が整ったら、さっそくベンチマークを実行してみます。
1 2 3 4 5 6 |
$ java -jar benchbase.jar \ --bench=tpcc \ --config=config/mysql/sample_tpcc_config.xml \ --create=true \ --load=true \ --execute=true |
テーブル作成、データロードを行った後、ワークロード実行という流れになります。
状況に応じて、データロードのみを行う、ワークロード実行のみを行う、という指定も可能です。
テキスト量が多いですが、標準出力された内容を載せておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
[INFO ] 2025-05-02 11:39:23,530 [main] com.oltpbenchmark.DBWorkload main - ====================================================================== Benchmark: TPCC {com.oltpbenchmark.benchmarks.tpcc.TPCCBenchmark} Configuration: config/mysql/sample_tpcc_config.xml Type: MYSQL Driver: com.mysql.cj.jdbc.Driver URL: jdbc:mysql://10.0.0.251:3306/bb_tpcc?rewriteBatchedStatements=true&allowPublicKeyRetrieval=True&sslMode=DISABLED Isolation: TRANSACTION_REPEATABLE_READ Batch Size: 128 DDL Path: null Loader Threads: 2 Session Setup File: null Scale Factor: 5.0 Terminals: 10 New Connection Per Txn: false Reconnect on Connection Failure: true [INFO ] 2025-05-02 11:39:23,531 [main] com.oltpbenchmark.DBWorkload main - ====================================================================== [INFO ] 2025-05-02 11:39:23,561 [main] com.oltpbenchmark.DBWorkload main - Creating new TPCC database... [INFO ] 2025-05-02 11:39:24,093 [main] com.oltpbenchmark.DBWorkload main - Finished creating new TPCC database... [INFO ] 2025-05-02 11:39:24,225 [main] com.oltpbenchmark.DBWorkload main - Loading data into TPCC database... [INFO ] 2025-05-02 11:39:24,228 [main] com.oltpbenchmark.util.ThreadUtil runLoaderThreads - Creating a Thread Pool with a size of 2 to run 6 Loader Threads. 4 threads will be queued. [INFO ] 2025-05-02 11:40:56,937 [main] com.oltpbenchmark.util.ThreadUtil runLoaderThreads - Finished executing 6 Loader Threads [time=92.71s] [INFO ] 2025-05-02 11:40:56,937 [main] com.oltpbenchmark.DBWorkload main - Finished loading data into TPCC database... [INFO ] 2025-05-02 11:40:56,937 [main] com.oltpbenchmark.DBWorkload runWorkload - Creating 10 virtual terminals... [INFO ] 2025-05-02 11:40:56,975 [main] com.oltpbenchmark.DBWorkload runWorkload - Launching the TPCC Benchmark with 1 Phase... [INFO ] 2025-05-02 11:40:56,984 [main] com.oltpbenchmark.ThreadBench runRateLimitedMultiPhase - PHASE START :: [Workload=TPCC] [Serial=false] [Time=60] [WarmupTime=0] [Rate=10000.0] [Arrival=REGULAR] [Ratios=[45.0, 43.0, 4.0, 4.0, 4.0]] [ActiveWorkers=10] [INFO ] 2025-05-02 11:40:56,984 [main] com.oltpbenchmark.ThreadBench runRateLimitedMultiPhase - MEASURE :: Warmup complete, starting measurements. [INFO ] 2025-05-02 11:41:56,985 [main] com.oltpbenchmark.ThreadBench runRateLimitedMultiPhase - TERMINATE :: Waiting for all terminals to finish .. [INFO ] 2025-05-02 11:41:57,023 [Thread-12] com.oltpbenchmark.ThreadBench run - Starting WatchDogThread [INFO ] 2025-05-02 11:41:57,040 [main] com.oltpbenchmark.DBWorkload runWorkload - ====================================================================== [INFO ] 2025-05-02 11:41:57,040 [main] com.oltpbenchmark.DBWorkload runWorkload - Rate limited reqs/s: Results(state=EXIT, nanoSeconds=60000060822, measuredRequests=23353) = 389.2162721181316 requests/sec (throughput), 386.0162753619684 requests/sec (goodput) [INFO ] 2025-05-02 11:41:57,057 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output Raw data into file: tpcc_2025-05-02_11-41-57.raw.csv [INFO ] 2025-05-02 11:41:57,256 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output samples into file: tpcc_2025-05-02_11-41-57.samples.csv [INFO ] 2025-05-02 11:41:57,273 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output summary data into file: tpcc_2025-05-02_11-41-57.summary.json [INFO ] 2025-05-02 11:41:57,283 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output DBMS parameters into file: tpcc_2025-05-02_11-41-57.params.json [INFO ] 2025-05-02 11:41:57,293 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output DBMS metrics into file: tpcc_2025-05-02_11-41-57.metrics.json [INFO ] 2025-05-02 11:41:57,298 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output benchmark config into file: tpcc_2025-05-02_11-41-57.config.xml [INFO ] 2025-05-02 11:41:57,342 [main] com.oltpbenchmark.DBWorkload writeOutputs - Output results into file: tpcc_2025-05-02_11-41-57.results.csv with window size 5 [INFO ] 2025-05-02 11:41:57,371 [main] com.oltpbenchmark.DBWorkload writeHistograms - ====================================================================== [INFO ] 2025-05-02 11:41:57,372 [main] com.oltpbenchmark.DBWorkload writeHistograms - Workload Histograms: Completed Transactions: com.oltpbenchmark.benchmarks.tpcc.procedures.NewOrder/01 [10319] ******************************************************************************** com.oltpbenchmark.benchmarks.tpcc.procedures.Payment/02 [10157] ****************************************************************************** com.oltpbenchmark.benchmarks.tpcc.procedures.OrderStatus/03 [ 969] ******* com.oltpbenchmark.benchmarks.tpcc.procedures.Delivery/04 [ 807] ****** com.oltpbenchmark.benchmarks.tpcc.procedures.StockLevel/05 [ 909] ******* Aborted Transactions: com.oltpbenchmark.benchmarks.tpcc.procedures.NewOrder/01 [ 89] *************************************************************** com.oltpbenchmark.benchmarks.tpcc.procedures.Delivery/04 [ 113] ******************************************************************************** Rejected Transactions (Server Retry): <EMPTY> Rejected Transactions (Retry Different): <EMPTY> Unexpected SQL Errors: <EMPTY> Unknown Status Transactions: <EMPTY> [INFO ] 2025-05-02 11:41:57,373 [main] com.oltpbenchmark.DBWorkload writeHistograms - ====================================================================== |
実行結果のデータは、results
ディレクトリに自動生成されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ ls -1 results/ tpcc_2025-05-02_11-41-57.config.xml tpcc_2025-05-02_11-41-57.metrics.json tpcc_2025-05-02_11-41-57.params.json tpcc_2025-05-02_11-41-57.raw.csv tpcc_2025-05-02_11-41-57.results.csv tpcc_2025-05-02_11-41-57.results.Delivery.csv tpcc_2025-05-02_11-41-57.results.NewOrder.csv tpcc_2025-05-02_11-41-57.results.OrderStatus.csv tpcc_2025-05-02_11-41-57.results.Payment.csv tpcc_2025-05-02_11-41-57.results.StockLevel.csv tpcc_2025-05-02_11-41-57.samples.csv tpcc_2025-05-02_11-41-57.summary.json |
性能指標値の確認は、summary.json に記録されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ cat results/tpcc_2025-05-02_11-41-57.summary.json { "Start timestamp (milliseconds)": 1746153656984, "Current Timestamp (milliseconds)": 1746153717273, "Elapsed Time (nanoseconds)": 60000060822, "DBMS Type": "MYSQL", "DBMS Version": "8.4.4", "Benchmark Type": "tpcc", "Final State": "EXIT", "Measured Requests": 23353, "isolation": "TRANSACTION_REPEATABLE_READ", "scalefactor": "5", "terminals": "10", "Latency Distribution": { "95th Percentile Latency (microseconds)": 63583, "Maximum Latency (microseconds)": 165058, "Median Latency (microseconds)": 16068, "Minimum Latency (microseconds)": 1118, "25th Percentile Latency (microseconds)": 9148, "90th Percentile Latency (microseconds)": 54523, "99th Percentile Latency (microseconds)": 93853, "75th Percentile Latency (microseconds)": 39753, "Average Latency (microseconds)": 25671 }, "Throughput (requests/second)": 389.2162721181316, "Goodput (requests/second)": 386.0162753619684 } |
スループット(グッドプット)およびレイテンシの統計情報を確認することができます。
他の TPC-C ベンチマークツールの結果出力は…
参考までに、TPC-C 派生ワークロードが実行可能な別ツール(冒頭にて説明)のベンチマーク実行結果の表示内容と比較してみます。
-
tpcc-mysql
123456789101112131415161718192021222324252627282930<Raw Results>[0] sc:0 lt:5360 rt:0 fl:0 avg_rt: 40.3 (5)[1] sc:7 lt:5358 rt:0 fl:0 avg_rt: 46.6 (5)[2] sc:462 lt:75 rt:0 fl:0 avg_rt: 3.1 (5)[3] sc:88 lt:447 rt:0 fl:0 avg_rt: 105.7 (80)[4] sc:0 lt:535 rt:0 fl:0 avg_rt: 140.2 (20)in 60 sec.<Raw Results2(sum ver.)>[0] sc:0 lt:5360 rt:0 fl:0[1] sc:7 lt:5358 rt:0 fl:0[2] sc:462 lt:75 rt:0 fl:0[3] sc:88 lt:447 rt:0 fl:0[4] sc:0 lt:535 rt:0 fl:0<Constraint Check> (all must be [OK])[transaction percentage]Payment: 43.50% (>=43.0%) [OK]Order-Status: 4.35% (>= 4.0%) [OK]Delivery: 4.34% (>= 4.0%) [OK]Stock-Level: 4.34% (>= 4.0%) [OK][response time (at least 90% passed)]New-Order: 0.00% [NG] *Payment: 0.13% [NG] *Order-Status: 86.03% [NG] *Delivery: 16.45% [NG] *Stock-Level: 0.00% [NG] *<TpmC>5360.000 TpmCTPC-C のベンチマークスコア TpmC が表示されます。(1分間あたりに処理可能なトランザクション数)
-
sysbench-tpcc
12345678910111213141516171819202122232425SQL statistics:queries performed:read: 202317write: 210042other: 30996total: 443355transactions: 15483 (257.88 per sec.)queries: 443355 (7384.31 per sec.)ignored errors: 71 (1.18 per sec.)reconnects: 0 (0.00 per sec.)General statistics:total time: 60.0398stotal number of events: 15483Latency (ms):min: 1.09avg: 38.76max: 462.2995th percentile: 102.97sum: 600165.42Threads fairness:events (avg/stddev): 1548.3000/38.42execution time (avg/stddev): 60.0165/0.01read/write 数の内訳など、sysbench 共通の出力結果を得られますが、TpmC スコアは表示されません。
おわりに
BenchBase は多用なワークロードを模したベンチマークを、ひとつのツールで実行できる環境が作成できるソフトウェアです。
設定や拡張も柔軟性があり、ベンチマークの再実行・再現もしやすいのが特徴的でした。
異種データベース間の性能比較や、単体の負荷試験にも活用できます。
また、開発・メンテナンスも止まっておらず、今後の機能拡充なども期待できます。
(Contributing も歓迎されています)
使い勝手は非常に良好でしたので、ベンチマークツールを探していたり、気になっていたら是非試してみてください!