CDC测试

本文介绍了对PolarDB-X的日志节点(Change Data Capture,CDC)进行性能测试的方法。您可以参照本文进行测试,来了解您所购买的PolarDB-X实例CDC节点的性能情况。

背景信息

PolarDB-XCDC节点是PolarDB-X数据库实例的日志节点,负责提供兼容MySQL BinlogBinlog日志服务,您可基于CDCBinlog进行消费订阅,满足不同场景下的业务需求。评测CDC性能水平的两个核心指标项分别是数据延迟数据吞吐。本文将通过TPC-C、SysbenchLarge 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

456789

456789

456789Sysbench

  • 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

    456789

    456789

    456789

  • 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

    456789

    456789

    456789

Large Transaction

数据量为10 GB以下时,Binlog的排序、归并等操作全部在内存完成,BPS500Mbyte/s;数据量为10 GB以上时,Binlog的排序、归并等操作触发了数据在内存和磁盘之间的交换,BPS350Mbyte/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

456789