本文介绍了对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 |