すべてのプロダクト
Search
ドキュメントセンター

PolarDB:CDCノードテスト

最終更新日:May 24, 2024

このトピックでは、PolarDB-Xの変更データキャプチャ (CDC) ノードテストの設計、プロセス、および結果について説明します。 このトピックを参照して、PolarDB-XインスタンスのCDCノードのパフォーマンスをテストできます。

背景情報

PolarDB-XインスタンスのCDCノードは、MySQLバイナリログと互換性のあるバイナリログサービスを提供するログノードとして使用されます。 CDCノードを使用して、バイナリログをサブスクライブおよび使用できます。 これにより、さまざまなシナリオでビジネス要件を満たすことができます。PolarDB-Xこのトピックでは、TPCベンチマークC (TPC-C) 、Sysbench、およびLarge Transactionを使用してCDCノードのパフォーマンスをテストする方法について説明します。 メトリクス、特にデータ遅延データスループットのメトリクスは、CDCノードのパフォーマンスを測定します。 次の表に、メトリクスの詳細を示します。 詳細については、「ログリソースモニタリング」をご参照ください。

メトリック説明略語
遅延時間バイナリログイベントが処理されているときに発生するレイテンシ。 単位:ミリ秒。 DT
1秒あたりのバイト数1秒あたりに処理されるバイナリログイベントのデータサイズ。 単位: byte/s。 BPS
1秒あたりのイベント1秒あたりに処理されるバイナリログイベントの数。 EPS
1秒あたりのトランザクション数1秒あたりに処理されるトランザクションの数。
説明 バイナリログ内のすべての処理済みトランザクションがカウントされます。
TPS

テストデザイン

  • CDCノードテストのインスタンス仕様
    ノードタイプノード仕様ノード数
    計算ノード32 vCPU、128 GBのメモリ12
    データノード32 vCPU、128 GBのメモリ16
    CDCノード16 vCPU、32 GBのメモリ2
  • ストレステスト用ECSインスタンスタイプ

    ecs.hfc6.16xlarge (64 vCPU、128 GBのメモリ)

    説明 大量のトラフィックを生成するには、複数のECS (Elastic Compute Service) インスタンスが必要になる場合があります。

手順

  • TPC-C
    テスト手順の詳細については、「TPC-Cテスト」をご参照ください。 この例では、次の設定が設定されています。
    • props.mysqlファイルで、warewareasパラメーターを2000に設定します。
    • props.mysqlファイルで、runMinsパラメーターを10に設定します。
    • runBenchmark.shファイルで、Java仮想マシン (JVM) のメモリを-Xms60g -Xmx60gに設定します。
  • Sysbench
    • oltp_write_only

      テスト手順の詳細については、「Sysbenchテスト」をご参照ください。 この例では、oltp_write_onlyシナリオが使用されています。 同時スレッドの数を変更して、異なるトラフィック量を生成できます。 次のコマンドを実行してストレステストを実行します。

      sysbench-config-file='sysb.conf'-db-ps-mode='disable'-skip-trx='off'-mysql-ignore-errors='all'-tables='16'-table-size='10000000'-threads={同時スレッド数} oltp_write_only run
    • oltp_insert

      テスト手順の詳細については、「Sysbenchテスト」をご参照ください。 この例では、oltp_insertシナリオが使用されます。 同時スレッドの数を変更して、異なるトラフィック量を生成できます。 次のコマンドを実行してストレステストを実行します。

      sysbench-config-file='sysb.conf'-db-ps-mode='disable'-skip-trx='on'-mysql-ignore-errors='all'-tables='16'-table-size='10000000'-threads={同時スレッド数} oltp_insert run
    • 大規模な取引

      large_transaction.sqlスクリプトをダウンロードして、ストレステスト用のさまざまなサイズのトランザクションを構築します。 200千個のデータを挿入すると、500 MBのトランザクションが構築されます。

テスト結果

TPC-C
メトリック (tpmC)DT (単位: ミリ秒)BPS (単位: MB/s)EPSTPS
260293.9860653074039078
515425.458012860175717980
783525.6910019795652927935
1087352.38120270129246438867
1283716.12150325154943345968
1500365.16220380181092653592
456789456789456789Sysbench
  • oltp_write_only
    メトリック (QPS)DT (単位: ミリ秒)BPS (単位: MB/s)EPSTPS
    106081.68453427406817761
    215321.43606853219035672
    302061.641009778839650560
    408594.41287128102387368702
    518068.92420152120121684654
    456789456789456789
  • oltp_insert
    メトリック (QPS)DT (単位: ミリ秒)BPS (単位: MB/s)EPSTPS
    50984.67462530938450984.67
    106907.389551645040106907.38
    155172.8514575935367155172.85
    206096.27267991230641206096.27
    252280.432751231519752252280.43
    306653.643881491843716306653.64
    352615.639201732136066352615.63
    456789456789456789
大規模トランザクション
テストデータの量が10 GB未満の場合、バイナリログに対してソートやマージなどの操作を実行すると、データがメモリに残ります。 この場合、BPSは500メガバイト/秒です。 テストデータの量が10 GBを超える場合、バイナリログに対する操作が実行されると、メモリとディスクの間でデータが交換されます。 この場合、BPSは350メガバイト/秒です。
取引サイズDT (単位: ミリ秒)BPS (単位: MB/s)EPS
0.5 GB200050024
1 GB480050024
2 GB780050024
3 GB940050024
4 GB1250050024
5 GB1700050024
10 GB5500035022
20 GB11500035022
456789