本文介紹了對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 |
測試設計
- 測試所用實例規格
節點類型 節點規格 節點數 CN 32C128 GB 12 DN 32C128 GB 16 CDC 16C32 GB 2 - 測試所用壓力機規格
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大小的事務。
- oltp_write_only
測試結果
TPC-C參考指標(tpmC) | DT(單位:ms) | BPS(單位:Mbyte/s) | EPS(單位:個/s) | TPS(單位:個/s) |
---|---|---|---|---|
260293.98 | 60 | 65 | 307403 | 9078 |
515425.45 | 80 | 128 | 601757 | 17980 |
783525.69 | 100 | 197 | 956529 | 27935 |
1087352.38 | 120 | 270 | 1292464 | 38867 |
1283716.12 | 150 | 325 | 1549433 | 45968 |
1500365.16 | 220 | 380 | 1810926 | 53592 |
- oltp_write_only
參考指標(QPS) DT(單位:ms) BPS(單位:Mbyte/s) EPS(單位:個/s) TPS(單位:個/s) 106081.68 45 34 274068 17761 215321.43 60 68 532190 35672 302061.64 100 97 788396 50560 408594.41 287 128 1023873 68702 518068.92 420 152 1201216 84654 - oltp_insert
參考指標(QPS) DT(單位:ms) BPS(單位:Mbyte/s) EPS(單位:個/s) TPS(單位:個/s) 50984.67 46 25 309384 50984.67 106907.38 95 51 645040 106907.38 155172.85 145 75 935367 155172.85 206096.27 267 99 1230641 206096.27 252280.43 275 123 1519752 252280.43 306653.64 388 149 1843716 306653.64 352615.63 920 173 2136066 352615.63
數據量為10 GB以下時,Binlog的排序、歸并等操作全部在內存完成,BPS為500Mbyte/s;數據量為10 GB以上時,Binlog的排序、歸并等操作觸發了數據在內存和磁盤之間的交換,BPS為350Mbyte/s。
事務大小 | DT(單位:ms) | BPS(單位:Mbyte/s) | EPS(單位:個/s) |
---|---|---|---|
0.5G | 2000 | 500 | 24 |
1G | 4800 | 500 | 24 |
2G | 7800 | 500 | 24 |
3G | 9400 | 500 | 24 |
4G | 12500 | 500 | 24 |
5G | 17000 | 500 | 24 |
10G | 55000 | 350 | 22 |
20G | 115000 | 350 | 22 |