如何进行MySQL并行复制测试

分类:编程技术 时间:2024-02-20 16:01 浏览:0 评论:0
0
今天和大家聊聊如何进行MySQL并行复制测试。很多人可能对此还不是很了解。为了让大家更好的了解,小编为大家总结了以下内容。希望您能从本文中有所收获。

关于主从延迟,一直是一个有争议的话题。在MySQL阵营中,如果可以容忍一定的延迟场景,通过主从实现读写分离是一个非常好的解决方案,但是延迟率能接受多高呢?新版本并行复制的效果如何?不同版本有什么变化吗?我们能找到一些参考数据来支持这一点吗?我们可以用一些小测试来说明这一点。 。

首先,为了基本遵循相同的参考标准,我们在同一台服务器上安装了5.6和5.7的MySQL服务,并在另一台服务器上搭建了从库。

数据库版本为5.6.23 Percona分支,5.7.17 MySQL官方版本

服务器上安装了pt工具来检测主从延迟,安装了新版本的sysbench来做这个压力测试。

主库:10.127.128.227 RHEL6U3 32G R710
从库:10.127.128.78 RHEL6U3 32G R710 为了基本达到相同的基准进行测试,我先启动了5.6数据库服务,测试完成,启动5.7服务。避免多个实例的并行干扰。

初始化数据使用类似于下面的脚本,在5.6和5.7版本中类似。

创建了10张表,插入了500万条数据进行测试。

sysbench /home/sysbench/sysbench-1.0.3/src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5 .7.17/mysql.sock --mysql-host=localhost --mysql-db=sysbenchtest --tables=10 --table-size=5000000 --threads=50prepare

压力测试使用遵循 sysbench 脚本,持续 300 秒 sysbench /home/sysbench/sysbench-1.0.3 /src/lua/oltp_read_write.lua --mysql-user=root --mysql-port=3308 --mysql-socket=/home/mysql_5.7.17/mysql.sock --mysql-host=localhost - -mysql-db =sysbenchtest --tables=10 --table-size=5000000 --threads=50 --report-interval=5 --time=300 运行检查主从延迟,使用pt-heartbeat完成。

启动后台任务:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p='pt_checksum',P=3307 -D sysbenchtest --create -table --interval=1 --update --replace --daemonize 启用主从延迟检测:

pt-heartbeat h='10.127.128.78',u='pt_checksum',p=' pt_checksum ',P=3308 -D sysbenchtest --table=heartbeat --monitor --master-server-id=3308 --frames=5s --interval=5
因为5.6中是主从复制,所以在5.7中仍然存在,我们将分别测试单线程和多线程复制之间的差异和改进。

并行复制的基本配置

5.6开启并行复制

mysql>stop slave;
mysql>set global Slave_parallel_workers=8 ;
mysql>start Slave;

5.7开启并行复制

值得一提的是,5.7已经做了一些改进,slave-parallel-type= DATABASE /LOGICAL_CLOCK
-- DATABASE -- 基于库级别的并行复制与5.6相同
-- LOGICAL_CLOCK -- 逻​​辑时钟,master如何执行并行,以及从设备如何并行播放它。所以我们启用了逻辑时钟。

mysql> stop Slave;
mysql> set global Slave_parallel_type='LOGICAL_CLOCK';
mysql> set global Slave_parallel_workers=8;
mysql> stop Slave;

并行复制效果对比图

下面是得到的概览图。横轴是测试时间,纵轴是延迟时间。

总体来说,MySQL 5.6中并行复制效率的提升还不够显着,而5.7中的提升效果却非常显着。

看完以上内容,您对如何进行MySQL并行复制测试有进一步的了解吗?如果您想了解更多知识或相关内容,请关注行业资讯频道,感谢您的支持。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何进行MySQL并行复制测试

用户评论