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