本記事では、TPC-Cテストのテスト環境、テストプラン、および詳細なテストデータ結果について説明します。
テスト環境
例として、Alibaba Cloud ECSをデプロイメント環境とします。
ハードウェア構成
サービスタイプ ECSタイプ インスタンス数 マシンコア数 メモリ OceanBaseデータベース ecs.g7.8xlarge 3 32C 128G
各マシンのシステムディスクは300G、さらに2枚の400GクラウドディスクをclogディスクおよびDataディスクとしてマウントし、パフォーマンスレベルはPL1ですODP、Benchmark SQL ecs.c7.16xlarge 1 32C 128G ソフトウェアバージョン
サービスタイプ ソフトウェアバージョン OceanBaseデータベース - Enterprise Edition:OceanBase 4.3.5.4
- Community Edition:OceanBase_CE 4.3.5.4
ODP OceanBase 4.3.1 Benchmark SQL Benchmark SQL V5.0 JDBC mysql-connector-java-5.1.47 OS CentOS Linux release 7.9.2009 (Core) テナント仕様
obd cluster tenant create obperf -n tpcc_tenant --max-cpu=28 --memory-size=180G -–zone-list=zone1,zone2,zone3 -–primary-zone=RANDOM --locality=F@zone1,F@zone2,F@zone3 --charset=utf8 -s 'ob_tcp_invited_nodes="%"' --optimize=htap説明
この例では、
--optimize=htapがデフォルトの負荷タイプです。本番環境では、実際のクラスタタイプに応じて適切な負荷タイプを選択してください。
テストプラン
OBDを使用してOceanBaseクラスタをデプロイし、ODPとTPC-Cを別々のマシンにデプロイすることで、クライアント側の負荷不足によるパフォーマンスボトルネックを防ぎます。
3ノードのOceanBaseクラスタは1:1:1の規模でデプロイされ、デプロイが成功したら、まずTPC-Cテスト用の新しいテナントとユーザーを作成します(
sysテナントはクラスタを管理するための組み込みシステムテナントであり、直接sysテナントを使用してテストを行わないでください)。また、テナントのprimary_zoneをRANDOMに設定します。テスト手順の詳細については、OceanBaseデータベースTPC-Cテストを参照してください。
テスト仕様
warehouses=1000
loadWorkers=40
terminals=1000
runMins=5
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
テスト結果
本テストでは、クラスタ作成時に指定したクラスタ負荷タイプと、テナント作成時に指定したテナントパラメータテンプレートタイプが一致しています。すべてのテストは、同時実行数96の条件で実施されました。
| TPC-C結果 | warehouses/terminals=1000 | warehouses/terminals=1200 | warehouses/terminals=1500 |
|---|---|---|---|
| tpmC (NewOrders) | 320903.49 | 373314.21 | 375926.53 |
| tpmTOTAL | 712868.92 | 829627.72 | 835495.46 |
| トランザクション数 | 7132407 | 8299816 | 8359340 |