本文介紹了對PolarDB-X的CDC節點(Change Data Captur,日志節點)進行性能測試的方法。您可以參照本文進行測試,來了解您所購買的PolarDB-X實例CDC節點的性能情況。

背景信息

PolarDB-X的CDC節點是PolarDB-X數據庫實例的日志節點,負責提供兼容MySQL Binlog的Binlog日志服務,您可基于CDC對Binlog進行消費訂閱,滿足不同場景下的業務需求。評測CDC性能水平的兩個核心指標項分別是數據延遲數據吞吐。本文將通過TPC-C、Sysbench和Large Transaction三種測試方法,對CDC進行性能測試。相關測試指標說明如下,詳情請參見日志資源監控

指標名稱指標說明指標簡稱
處理延遲處理Binlog事件的延遲時間,單位為毫秒。DT=Delay Time
處理數據量處理Binlog的數據量,單位為字節/秒。BPS=Bytes Per Second
處理事件個數每秒處理Binlog事件的個數。EPS=Events Per Second
處理事務個數每秒處理事務的個數。
說明 以Binlog文件中的事務個數作為統計依據。
TPS=Transactions Per Second

測試設計

  • 測試所用實例規格
    節點類型節點規格節點數
    CN32C128 GB12
    DN32C128 GB16
    CDC16C32 GB2
  • 測試所用壓力機規格

    ecs.hfc6.16xlarge(64 vCPU,128 GB內存)

    說明 為了構造出足夠大的流量,可能需要不止一臺壓測機。

測試方法

  • TPC-C
    測試方法參見TPC-C測試,本測試場景的相關說明如下:
    • props.mysql文件中,warehouses設置為2000。
    • props.mysql文件中,runMins設置為10。
    • runBenchmark.sh文件中,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

      參考該腳本large_transaction.sql,構造不同大小的事務進行測試,每插入20w條數據可以構造一個500 MB大小的事務。

測試結果

TPC-C
參考指標(tpmC)DT(單位:ms)BPS(單位:Mbyte/s)EPS(單位:個/s)TPS(單位:個/s)
260293.9860653074039078
515425.458012860175717980
783525.6910019795652927935
1087352.38120270129246438867
1283716.12150325154943345968
1500365.16220380181092653592
456789

456789

456789Sysbench
  • oltp_write_only
    參考指標(QPS)DT(單位:ms)BPS(單位:Mbyte/s)EPS(單位:個/s)TPS(單位:個/s)
    106081.68453427406817761
    215321.43606853219035672
    302061.641009778839650560
    408594.41287128102387368702
    518068.92420152120121684654
    456789

    456789

    456789
  • oltp_insert
    參考指標(QPS)DT(單位:ms)BPS(單位:Mbyte/s)EPS(單位:個/s)TPS(單位:個/s)
    50984.67462530938450984.67
    106907.389551645040106907.38
    155172.8514575935367155172.85
    206096.27267991230641206096.27
    252280.432751231519752252280.43
    306653.643881491843716306653.64
    352615.639201732136066352615.63
    456789

    456789

    456789
Large Transaction
數據量為10 GB以下時,Binlog的排序、歸并等操作全部在內存完成,BPS為500Mbyte/s;數據量為10 GB以上時,Binlog的排序、歸并等操作觸發了數據在內存和磁盤之間的交換,BPS為350Mbyte/s。
事務大小DT(單位:ms)BPS(單位:Mbyte/s)EPS(單位:個/s)
0.5G200050024
1G480050024
2G780050024
3G940050024
4G1250050024
5G1700050024
10G5500035022
20G11500035022
456789