多源复制的压力测试使用了Sysbench对2台主库(master和master1)一起加压,同时对从库slave进行性能监控。(3个数据库所在的服务器配置完全相同)
测试语句:
参数说明:
OLTP场景
Innodb引擎
对5张表操作
每数据库1万个操作请求(一共2万个操作请求)
混合读写
每数据库100并发
每表20万条数据
考虑到30并发度的资源利用相对充分、执行效率相对较高的测试结果,在从库开启30个SQL线程并行后进行测试,并将从库的监控数据进行统计做成可视化曲线图进行分析。
从下面3张测试后生成的曲线图可以看到,对于从主库发过来的2万个请求,并行执行的完成时间(横轴为时间)比单线程更短,资源利用率更高,执行效率更高。
CPU 使用率:
从图中可看到,开启并行之后,CPU的利用率比之前有所升高,负载还OK,最高36%左右,利用较单线程更充分,操作完成时间更早(曲线最先恢复下降到0)。
Disk Write KB/s
硬盘使用率从图中看出,并行SQL线程relay过程相对比较平稳,未出现明显抖动,并且30并发的曲线最早归零,结束操作。
Free Memory 剩余内存:
内存使用差不太多。
由此可见,多源复制在合理的开启并行之后,有助于提高复制效率,缩短数据的延迟。
小结
总体说来,MySQL的多源复制提供了更经济、方便和安全的数据库环境。如有感兴趣的朋友,欢迎留言一起交流,模拟业务场景进行测试、提出测试建议、更正错误和共同研究都是非常欢迎的,希望与大家互助共进!