TiDB v7.5.0 のTiDB Cloud Sysbench パフォーマンス テスト レポート

このドキュメントでは、TiDB バージョン v7.5.0 を使用したTiDB Cloud Dedicated クラスターの Sysbench パフォーマンス テストの手順と結果について説明します。このレポートは、TiDB Self-Managed v7.5.0 クラスターのパフォーマンスのリファレンスとしても使用できます。

テストの概要

このテストは、オンライン トランザクション処理 (OLTP) シナリオにおける TiDB v7.5.0 の Sysbench パフォーマンスを示すことを目的としています。

テスト環境

TiDB クラスター

テストは、次の設定で TiDB クラスター上で実行されます。

  • クラスタタイプ: TiDB Cloud専用

  • クラスタバージョン: v7.5.0

  • クラウドプロバイダー: AWS (us-west-2)

  • クラスタ構成:

    ノードタイプノードサイズノード数ノードstorage
    ティビ16 vCPU、32 GiB2該当なし
    ティクヴ16 vCPU、64 GiB31000ギガバイト

パラメータ設定

注記:

TiDB Cloudの場合、クラスターの TiKV パラメータを変更するには、 PingCAP サポート問い合わせてサポートを受けることができます。

TiKV パラメータprefill-for-recycleを使用すると、初期化後すぐにログのリサイクルを有効にすることができます。このドキュメントでは、次のprefill-for-recycleの構成を使用して、さまざまなワークロードに基づいてテストを実施します。

  • oltp_point_selectワークロードの場合、 prefill-for-recycleパラメータのデフォルト値を使用します。

    raft-engine.prefill-for-recycle = false
  • oltp_insert 、およびoltp_update_index oltp_read_writeワークロードの場合は、 prefill-for-recycleパラメータをoltp_update_non_indexにします。

    raft-engine.prefill-for-recycle = true

ベンチマーク実行者

ベンチマーク エグゼキュータは、TiDB クラスタに SQL クエリを送信します。このテストでは、ハードウェア構成は次のとおりです。

  • マシンタイプ: Amazon EC2 (us-west-2)
  • インスタンスタイプ: c6a.2xlarge
  • Sysbench バージョン: sysbench 1.0.20 (バンドルされた LuaJIT 2.1.0-beta2 を使用)

テスト手順

このセクションでは、Sysbench パフォーマンス テストを段階的に実行する方法を紹介します。

  1. TiDB Cloudコンソールでは、 テスト環境要件を満たすTiDB Cloud Dedicated クラスターを作成します。

    詳細についてはTiDB Cloud専用クラスターを作成する参照してください。

  2. ベンチマーク エグゼキュータで、新しく作成されたクラスターに接続し、 sbtestという名前のデータベースを作成します。

    クラスターに接続するには、 プライベートエンドポイント経由でTiDB Cloud Dedicatedに接続する参照してください。

    sbtestデータベースを作成するには、次の SQL ステートメントを実行します。

    CREATE DATABASE sbtest;
  3. Sysbench データをsbtestデータベースにロードします。

    1. このドキュメントのテストはシステムベンチに基づいて実装されています。sysbench をインストールするにはソースからのビルドとインストール参照してください。

    2. 次のsysbench prepareコマンド${PASSWORD}実行して、32 個のテーブルと 10,000,000 行をsbtestデータベースにインポートします。5、7、9、 ${PORT} ${THREAD} ${HOST}実際の値に置き換えます。

      sysbench oltp_common \ --threads=${THREAD} \ --db-driver=mysql \ --mysql-db=sbtest \ --mysql-host=${HOST} \ --mysql-port=${PORT} \ --mysql-user=root \ --mysql-password=${PASSWORD} \ prepare --tables=32 --table-size=10000000
  4. さまざまなワークロードで Sysbench パフォーマンス テストを実行するには、次のsysbench runコマンドを実行します。このドキュメントでは、 oltp_point_selectoltp_read_writeoltp_update_non_indexoltp_update_index 、およびoltp_insertの 5 つのワークロードでテストを実行します。各ワークロードについて、このドキュメントでは${THREAD}値が100200 、および400である 3 つのテストを実行します。同時実行ごとに、テストには 20 分かかります。

    sysbench ${WORKLOAD} run \ --mysql-host=${HOST} \ --mysql-port=${PORT} \ --mysql-user=root \ --db-driver=mysql \ --mysql-db=sbtest \ --threads=${THREAD} \ --time=1200 \ --report-interval=10 \ --tables=32 \ --table-size=10000000 \ --mysql-ignore-errors=1062,2013,8028,9007 \ --auto-inc=false \ --mysql-password=${PASSWORD}

テスト結果

このセクションでは、 テスト環境における v7.5.0 の Sysbench パフォーマンスを紹介します。

ポイント選択パフォーマンス

oltp_point_selectワークロードのパフォーマンスは次のとおりです。

スレッドTPPSについて95%レイテンシー(ミリ秒)
5033,3441.96
10064,8102.03
200118,6512.22

Sysbench point select performance

読み取り書き込みパフォーマンス

oltp_read_writeワークロードのパフォーマンスは次のとおりです。

スレッドTPPSについて95%レイテンシー(ミリ秒)
501,18149.2
1002,16254.8
2003,16992.4

Sysbench read write performance

非インデックスパフォーマンスの更新

oltp_update_non_indexワークロードのパフォーマンスは次のとおりです。

スレッドTPPSについて95%レイテンシー(ミリ秒)
10010,56711.7
20020,22313.0
40034,01114.7

Sysbench update non-index performance

インデックスのパフォーマンスを更新する

oltp_update_indexワークロードのパフォーマンスは次のとおりです。

スレッドTPPSについて95%レイテンシー(ミリ秒)
1008,89614.7
20013,71819.0
40020,37726.9

Sysbench update index performance

挿入パフォーマンス

oltp_insertワークロードのパフォーマンスは次のとおりです。

スレッドTPPSについて95%レイテンシー(ミリ秒)
10015,1328.58
20024,75610.8
40037,24716.4

Sysbench insert performance

このページは役に立ちましたか?