IMCI物理复制性能

更新时间:
复制 MD 格式

本文介绍PolarDB MySQL8.0.1集群版在写入负载下开启列存索引(IMCI)后的写入吞吐表现,以及列存索引只读节点的物理复制延迟测试结果,为您评估在读写混合场景下引入列存索引对写入侧的影响提供参考。

适用范围

  • PolarDB MySQL8.0.1集群版

  • 集群包含单一主(RW)节点、普通只读节点与列存索引只读节点各一个。

说明

本文的性能数据基于特定测试环境采集,实际生产环境下的性能表现受实例规格、集群拓扑、地域、时段及业务负载影响,仅供参考。本文采用的测试方法参考PolarDB MySQL8.0.1版本性能(集群版)

测试环境

  • 集群规格:PolarDB MySQL8.0.1集群版,规格为832 GB。

  • 集群拓扑:单一主(RW)节点 + 一个普通只读节点 + 一个列存索引只读节点。

  • 测试工具:Sysbench。

  • 测试负载:oltp_write_only.lua,写入端直连主(RW)节点地址。

  • 测试数据量:25张表,每张表250000行数据。

  • 并发线程:8、16、32、48、64、96、128、192、256。

写入场景吞吐数据

写入场景以oltp_write_only.lua作为压测负载,以同一份数据上未创建列存索引的基线写入作为对比。在每个并发级别下,测试持续运行,直至关键性能指标(QPS/TPS)进入稳定状态。为确保数据的可靠性,当性能曲线趋于平稳后,测试将继续运行一段时间,并取这段稳定期内的平均值作为该并发级别下的性能数据。

测试结论:基线与列存索引写入峰值均出现在192线程,同峰值并发下开启列存索引后写入QPS/TPS损耗均为7.73%;8~256线程区间内QPS损耗介于3.88%~9.02%之间,均低于10%。

说明

由于oltp_write_only.lua每个事务的SQL请求数固定,QPS损耗与TPS损耗数值一致。

写入吞吐:基线QPS对比列存索引QPS

并发线程

基线TPS

列存索引TPS

基线QPS

列存索引QPS

QPS/TPS损耗

8

6697.58

6437.93

40185.46

38627.61

3.88%

16

11882.91

11141.52

71297.39

66849.17

6.24%

32

17474.13

16022.83

104844.87

96136.98

8.31%

48

19170.51

17441.69

115023.03

104650.36

9.02%

64

19755.12

18106.05

118530.62

108636.20

8.35%

96

21117.58

19681.40

126705.57

118088.42

6.80%

128

21687.16

20010.19

130122.90

120061.01

7.73%

192

22012.15

20311.59

132073.19

121869.54

7.73%

256

21343.39

20136.51

128060.62

120819.23

5.65%

物理复制延迟数据

由于列存索引写入吞吐在192线程达到峰值,此时主(RW)节点写入负载最高、对只读节点的复制压力也最大。因此,选取192线程这一峰值配置进行满压重测,持续采集列存索引只读节点相对主(RW)节点的复制延迟。

测试结论:在写入峰值压力下,列存索引只读节点的复制延迟p500.11 ms,p9518.02 ms,绝大多数采样点处于低毫秒水平,可满足对数据实时性要求较高的分析场景。

指标

avg

p50

p95

p99

max

列存索引只读节点复制延迟(单位:ms)

3.71

0.11

18.02

68.34

139.59