本文介绍了对PolarDB-X的日志节点(Change Data Capture,CDC)进行性能测试的方法。您可以参照本文进行测试,来了解您所购买的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大小的事务。
测试结果
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 |
Sysbench
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
Large Transaction
数据量为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 |