📣
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;

TiKVパラメータprefill-for-recycleを指定すると、初期化直後からログのリサイクルが有効になります。このドキュメントでは、以下のprefill-for-recycle設定を用いて、異なるワークロードに基づいたテストを実施しています。

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

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

    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データベースにインポートします。${HOST}${PORT}${THREAD}${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のパフォーマンステストを異なるワークロードで実行するには、以下のsysbench runコマンドを実行します。このドキュメントでは、 oltp_point_selectoltp_read_writeoltp_update_non_indexoltp_update_indexoltp_insertの5つのワークロードでテストを実施します。各ワークロードについて、変数${THREAD}の値を変えて3つのテストを実施します。 oltp_point_selectoltp_read_writeの場合、値は50100200です。その他のワークロードの場合、値は100200400です。各同時実行数について、テストには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

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