序言
MySQL5.7引入了基于逻辑时钟的并行复制的概念,让保守延迟困扰的我看到了一丝曙光。开心的将典型的库(6500/s TPS)升级到5.7之后,发现在默认的参数下提升并不明显。受Percona的关于并行复制这篇文章的启发,开始对参数binlog_group_commit_sync_delay调整对实际环境影响的验证。
环境
40核
buffer_pool_size >>data_size
数据目录使用SAS口的SSD
主库6500/s的insert、update、delete
slave_parallel_type=LOGICAL_CLOCK
备库slave_parallel_workers=10
测试用例
调整binlog_group_commit_sync_delay
观察主库语句响应时间、备库TPS和延迟追回效率 三个指标
测试结果
主库RT分布 | 0 | 10 | 20 | 50 |
---|---|---|---|---|
0.0001 | 26.58% | 0.01% | 0.01% | 0.01% |
0.001 | 73.41% | 99.63% | 99.62% | 99.46% |
0.01 | 0.01% | 0.35% | 0.36% | 0.50% |
0.1 | 0.01% | 0.00% | 0.01% | 0.03% |
1 | 0.00% | 0.00% | 0.00% | 0.00% |
Slave TPS | 7778 | 11006 | 10387 | 10814 |
Catch/10s | 12.67s | 16.08s | 14.64s | 13.12s |