这次单独调查一下主从延迟的时间。这里说的主从延迟,并不是指“从库更新性能跟不上主库”, 而是“一个命令从主库更新完成到从库更新完成的延迟时间。
基本流程:
对于每一个连上来的从库,主库都有一个client线程与之对应。
先看主从的基本数据流
1、客户端SQL更新命令
2、主库执行
3、主库写binlog
4、主库client线程读binlog发送给从库的io线程
5、从库io线程写盘(relay-log)
6、从库sql线程读relay-log
7、执行更新。
这里有涉及到两个写盘,主库binlog和从库的relaylog(3、5)。不过不用担心不停扫描文件造成的延迟,因为读文件的线程是在同一个进程内,每次写完都会广播,所以虽然看上去是异步,实际上延迟并不大。
我们主要考察步骤2完成瞬间到7开始执行之前的延时。
实验方法――一级主从
实际应用中主从库机器应该是分开的,这里也讨论这种情况(同机房,不同机器)
可以想象延迟很小,因此在不同机器上输出时间还需要考虑机器之间的时间同步。设计流程如下:
1、机器A上的MySQL S设置为机器B上的MySQL M的从库
2、在A上有一个简单客户端C,向M发起一个insert操作,这个操作会被同步到S。
3、在C执行mysql_real_query返回时输出当前系统微秒时间 t1
4、在S上的引擎回调接口write_row入口处输出当前系统微秒时间 t2
则 t2- t1的值是我们需要的结果。
实验方法――二级主从
项目中担心多个从库连接一个主库,影响主库性能,因此还要在实验二级级联主从的延迟时间。
这种结构下,在第一级从库上增加了一次写盘转发 (sql执行更新后写本地binlog),
实验结果
一级主从 50~100 us
二级主从 1.1~1.2 ms
- 大小: 13.9 KB
- 大小: 23.7 KB
分享到:
相关推荐
今天小编就为大家分享一篇关于MySQL主从同步延迟的原因及解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
本篇文章是对减少mysql主从数据同步延迟的问题进行了详细的分析介绍,需要的朋友参考下
- 主从同步有延迟怎么办? - .frm .myi .myd .ibd 文件 - 为什么表数据删掉一半,表文件大小不变? - 误删表数据除了跑路,还能干啥? - MySQL长连接导致内存溢出? - MySQL自带的数据库 - 代码示例 - MySQL 相关阅读 # ...
主要介绍了Shell脚本实现监控MySQL主从同步,此脚本应该能适应各种各样不同的内外网环境,并同时监控MySQL运行状态,需要的朋友可以参考下
作为一名DBA,在工作中会经常遇到一些MySQL主从同步延迟的问题,这些同步慢的问题,其实原因非常多,可能是因为主从的网络问题导致,可能是因为网络带宽问题导致,可能是因为大事务导致,也可能是因为单线程复制导致...
https://mp.csdn.net/console/uploadResources?spm=1011.2124.3001.4171
本文从实战角度出发,深入探讨了MySQL主从架构及读写分离的搭建与应用。首先介绍了MySQL在大型互联网环境下面临的数据量大和安全性高的挑战,强调了主从架构在性能提升和数据安全方面的重要性。详细说明了如何配置...
突破Java面试(50)-MySQL读写分离及主从同步延时解决方案.docx
由于mysql主从复制是基于binlog的一种异步复制 通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计...
在异步或半同步的复制结构中,从库出现延迟是一件十分正常的事。 虽出现延迟正常,但是否需要关注,则一般是由业务来评估。 如:从库上有需要较高一致性的读业务,并且要求延迟小于某个值,那么则需要关注。 简单...
1)MySQL的replication过程是一个异步同步的过程,并非完全的主从同步,所以同步的过程中是有延迟的,如果做了读写分离的业务的话,建议也要监控此延迟时间; 2)MySQL的master与slave机器记得server-id要保持不...
什么是MySQL主从复制 简单来说,是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟),通过这种方式来保证数据的一致性,是...
主要介绍了mysql数据库延时备份的方法,也就是mysql主从服务器备份,可以同步到多个服务器,最后我们提供了一个备份脚本,大家参考使用吧
MySQL-Transefer(下称Transfer)是一个基于MySQL+patch后得到的主从同步工具。其主要目的是为了解决原生版本的主从同步里,从库是单线程apply主库的binlog,导致的延迟。最近完成测试的版本将multi-master(byP....
介绍了MYSQL主从不同步延迟原理分析及解决方案,有需要的朋友可以参考一下
避免主从同步的延迟在双主复制的基础上,需要进行一些额外的配置来避免主从同步的延迟。例如,配置binlog_format为ROW、设置read_only参数为0,利用GTID来控制并发更新,以及使用Delay-aware Load Balancer等技术,...
第11课、主从复制选择及同步延迟排查方法-0111.avi 第12课、MySQL备份1-0118.avi 第13课、Innodb在线热备原理及操作-0215.avi 第14课、基于Binlog的恢复操作-0220.avi 第15课、高可用开篇-0222.avi 第16课、...