TiDB v8.1.0 のTiDB Cloud TPC-C パフォーマンス テスト レポート
このドキュメントでは、TiDB バージョン v8.1.0 を使用したTiDB Cloud Dedicated クラスターの TPC-C パフォーマンス テストの手順と結果について説明します。このレポートは、TiDB Self-Managed v8.1.0 クラスターのパフォーマンスのリファレンスとしても使用できます。
テストの概要
このテストの目的は、オンライン トランザクション処理 (OLTP) シナリオにおける TiDB v8.1.0 の TPC-C パフォーマンスを示すことです。
テスト環境
TiDB クラスター
テストは、次の設定で TiDB クラスター上で実行されます。
クラスタタイプ: TiDB Cloud専用
クラスタバージョン: v8.1.0
クラウドプロバイダー: AWS (us-west-2)
クラスタ構成:
ノードタイプ ノードサイズ ノード数 ノードstorage ティビ 16 vCPU、32 GiB 2 該当なし ティクヴ 16 vCPU、64 GiB 3 1000ギガバイト
パラメータ設定
注記:
TiDB Cloudの場合、クラスターの TiKV パラメータを変更するには、 PingCAP サポート問い合わせてサポートを受けることができます。
TiKV パラメータprefill-for-recycle
は、初期化後すぐにログのリサイクルを有効にすることができます。このドキュメントでは、 prefill-for-recycle
を有効にしてテストを実施します。
raft-engine.prefill-for-recycle = true
ベンチマーク実行者
ベンチマーク エグゼキュータは、TiDB クラスタに SQL クエリを送信します。このテストでは、ハードウェア構成は次のとおりです。
- マシンタイプ: Amazon EC2 (us-west-2)
- インスタンスタイプ: c6a.2xlarge
テスト手順
このセクションでは、TPC-C パフォーマンス テストを段階的に実行する方法を紹介します。
TiDB Cloudコンソールでは、 テスト環境要件を満たすTiDB Cloud Dedicated クラスターを作成します。
詳細についてはTiDB Cloud専用クラスターを作成する参照してください。
ベンチマーク エグゼキュータで、新しく作成されたクラスターに接続し、
tpcc
という名前のデータベースを作成します。クラスターに接続するには、 プライベートエンドポイント経由でTiDB Cloud Dedicatedに接続する参照してください。
tpcc
データベースを作成するには、次の SQL ステートメントを実行します。CREATE DATABASE tpcc;TPC-C データを
tpcc
データベースにロードします。このドキュメントのテストはゴーTPCに基づいて実装されています。テスト プログラムは次のコマンドを使用してダウンロードできます。
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/pingcap/go-tpc/master/install.sh | sh次の
go-tpc tpcc
コマンドを実行して、1,000 個の倉庫をtpcc
データベースにインポートします。${HOST}
、${THREAD}
、および${PASSWORD}
実際の値に置き換えます。このドキュメントでは、${THREAD}
値が50
、100
、および200
である 3 つのテストを実行します。go-tpc tpcc --host ${HOST} --warehouses 1000 prepare -P 4000 -D tpcc -T ${THREAD} --time 2h0m0s -p ${PASSWORD} --ignore-error
TiDB オプティマイザーが最適な実行プランを生成できるようにするには、TPC-C テストを実行する前に次の SQL ステートメントを実行して統計を収集します。
ANALYZE TABLE customer; ANALYZE TABLE district; ANALYZE TABLE history; ANALYZE TABLE item; ANALYZE TABLE new_order; ANALYZE TABLE order_line; ANALYZE TABLE orders; ANALYZE TABLE stock; ANALYZE TABLE warehouse;統計の収集を高速化するには、収集前に次の SQL ステートメントを実行します。
SET tidb_build_stats_concurrency=16; SET tidb_distsql_scan_concurrency=16; SET tidb_index_serial_scan_concurrency=16;TiDB Cloud Dedicated クラスターでストレス テストを実行するには、次の
go-tpc tpcc
コマンドを実行します。同時実行ごとに、テストには 2 時間かかります。go-tpc tpcc --host ${HOST} -P 4000 --warehouses 1000 run -D tpcc -T ${THREAD} --time 2h0m0s -p ${PASSWORD} --ignore-error結果から
NEW_ORDER
のtpmCデータを抽出します。TPC-C は、tpmC (1 分あたりのトランザクション数) を使用して、最大適格スループット (MQTh、最大適格スループット) を測定します。トランザクションは NewOrder トランザクションであり、最終的な測定単位は 1 分あたりに処理される新規注文の数です。
テスト結果
テスト環境における v8.1.0 の TPC-C パフォーマンスは次のとおりです。
スレッド | v8.1.0 tpmC |
---|---|
50 | 43,660 |
100 | 75,495 |
200 | 102,013 |