本記事では、TPC-Hテストのテスト環境、テスト計画、および詳細なテストデータ結果について説明します。
テスト環境
Alibaba Cloud ECSをデプロイメント環境として例にします。
ハードウェア構成
サービスタイプECSタイプインスタンス数マシンのコア数メモリOceanBaseデータベース ecs.r8i.8xlarge 3 32C 256G
各マシンのログディスク400G、データディスク1200G、パフォーマンスレベルはPL1ソフトウェアバージョン
サービスタイプソフトウェアバージョンOceanBaseデータベース - Enterprise Edition: OceanBase 4.4.2.0
- Community Edition: OceanBase_CE 4.4.2.0
TPC-H V3.0.0 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データベースクラスタをデプロイします。TPC-Hクライアントは1台のマシンにデプロイし、クライアントの負荷マシンとして使用します。ODPはデプロイ不要で、テスト時は任意のマシンに直接接続することができます。
3ノードのOceanBaseクラスタのデプロイ規模は1:1:1です。デプロイ成功後、まずTPC-Hテスト用の新しいテナントとユーザーを作成します(
sysテナントはクラスタを管理する組み込みシステムテナントであるため、sysテナントを直接使用してテストしないでください)。テナントのprimary_zoneをRANDOMに設定します。テストデータ量:100G。
テスト手順の詳細については、OceanBaseデータベースTPC-Hテストを参照してください。
テスト結果
今回のTPC-Hテストは、SNモードで100GBのデータ規模を使用し、並列数を16に設定して、hot runとcold runのシナリオについてテストを行いました。
Query |
100G |
100G |
|---|---|---|
| - | hot run(s) | cold run(s) |
| パラレル数 | parallel(16) | parallel(16) |
| Q1 | 1.98s | 2.68s |
| Q2 | 0.20s | 1.06s |
| Q3 | 0.67s | 3.42s |
| Q4 | 0.58s | 3.67s |
| Q5 | 0.75s | 6.71s |
| Q6 | 0.03s | 0.65s |
| Q7 | 0.60s | 2.90s |
| Q8 | 0.85s | 8.10s |
| Q9 | 2.26s | 9.10s |
| Q10 | 0.65s | 3.60s |
| Q11 | 0.16s | 0.75s |
| Q12 | 0.27s | 1.26s |
| Q13 | 1.27s | 2.68s |
| Q14 | 0.19s | 0.46s |
| Q15 | 0.23s | 0.55s |
| Q16 | 0.48s | 0.55s |
| Q17 | 0.30s | 0.68s |
| Q18 | 2.07s | 2.89s |
| Q19 | 0.45s | 4.24s |
| Q20 | 0.23s | 1.56s |
| Q21 | 1.82s | 6.30s |
| Q22 | 0.28s | 0.73s |
| total cost | 16.32s | 69.05s |