📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

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



このドキュメントでは、TiDBバージョンv8.1.0を搭載したTiDB Cloud DedicatedクラスタのSysbenchパフォーマンステストの手順と結果について説明します。このレポートは、TiDB Self-Managed v8.1.0クラスタのパフォーマンスの参考資料としてもご利用いただけます。

テストの概要

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

テスト環境

TiDB クラスター

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

  • クラスタタイプ: TiDB Cloud Dedicated

  • クラスタバージョン: v8.1.0

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

  • クラスタ構成:

    ノードタイプノードサイズノード数ノードストレージ
    TiDB16 vCPU、32 GiB2該当なし
    TiKV16 vCPU、64 GiB31000ギガバイト

パラメータ設定

システム変数tidb_session_plan_cache_size 、キャッシュできるプランの最大数を制御します。デフォルト値は100 。このドキュメントでは、各ワークロードについて、 tidb_session_plan_cache_size1000に設定してテストを実施しています。

SET GLOBAL tidb_session_plan_cache_size = 1000;

注記:

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_non_index oltp_update_indexロードの場合は、 prefill-for-recycleパラメータoltp_read_write有効にします。

    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 Dedicatedクラスタを作成する参照してください。

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

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

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

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

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

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

    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のパフォーマンステストoltp_update_non_index sysbench run oltp_read_write oltp_point_select oltp_insert oltp_update_indexします。各ワークロードについて、変数${THREAD}値を変えて3つのテストを実施します。15とoltp_point_select oltp_read_write場合、値200 50 100 。その他のワークロードの場合、値400 100 200 。各同時実行数について、テストには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}

テスト結果

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

ポイントセレクトパフォーマンス

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

スレッドTPS95%レイテンシー(ミリ秒)
5032,7411.96
10062,5452.03
200111,4702.48

Sysbench point select performance

読み書きパフォーマンス

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

スレッドTPS95%レイテンシー(ミリ秒)
501,23246.6
1002,34151
2003,240109

Sysbench read write performance

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

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

スレッドTPS95%レイテンシー(ミリ秒)
10014,0009.39
20025,21510.5
40042,55012.8

Sysbench update non-index performance

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

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

スレッドTPS95%レイテンシー(ミリ秒)
10011,18811.7
20017,80514.7
40024,57523.5

Sysbench update index performance

挿入パフォーマンス

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

スレッドTPS95%レイテンシー(ミリ秒)
10018,3397.3
20029,3879.73
40042,71214.2

Sysbench insert performance

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