📣

TiDB Cloud Serverless が
Starter
に変わりました!このページは自動翻訳されたものです。
原文はこちらからご覧ください。

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

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

テストの概要

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

テスト環境

TiDB クラスター

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

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

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

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

  • クラスタ構成:

    ノードタイプノードサイズノード数ノードstorage
    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専用クラスタを作成する参照してください。

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

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

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

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

    1. このドキュメントのテストはシステムベンチに基づいて実装されています。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_point_selectoltp_read_writeoltp_update_non_indexoltp_update_indexoltp_insertsysbench runつのワークロードでテストを実施します。各ワークロードについて、 ${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.5.0 の Sysbench パフォーマンスを紹介します。

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

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

スレッドTPS95%レイテンシー(ミリ秒)
5032,7331.94
10062,1232.04
200107,7952.56

Sysbench point select performance

読み書きパフォーマンス

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

スレッドTPS95%レイテンシー(ミリ秒)
501,25845.8
1002,24352
2003,18794.7

Sysbench read write performance

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

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

スレッドTPS95%レイテンシー(ミリ秒)
10012,96910.10
20023,26511.2
40039,54713.2

Sysbench update non-index performance

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

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

スレッドTPS95%レイテンシー(ミリ秒)
10011,67811.0
20017,68514.8
40025,36920.4

Sysbench update index performance

挿入パフォーマンス

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

スレッドTPS95%レイテンシー(ミリ秒)
10018,4097.28
20030,9438.28
40048,62111.2

Sysbench insert performance

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