zoukankan      html  css  js  c++  java
  • MySQL主从延时监控

    MySQL主从延时监控

    一、什么是主从延时?

    主库发生了操作,从库"很久"才跟上来。
    

    二、主从延时怎么监控?

    Seconds_Behind_Master: 0   #从库落后于主库的时间
    PS:有或者没有延时的情况。等于0,不代表没有延时。
    
    评估主从延时更加精确的指标是,延时了多少日志量。
    主库执行的日志量,从库执行的日志的对比。
    日志量:
       主库binlog位置点
       从库:relay执行的位置点
    

    三、如何计算日志量

    单位是字节

    [root@slave1 mysql]# cat relay-log.info 
    7							#来自于那个主库?
    ./slave1-relay-bin.000005	#relay执行到的位置点(两行)
    360
    
    mysql-bin.000004			#对应主库的日志位置点
    679121
    
    0	#不管
    0
    1
    

    四、主从复制延迟原因

    4.1、主库

    外部:网络,硬件配置,主库业务繁忙,从库太多
    主库业务繁忙:
    1.拆分业务((分布式):组件分离,垂直,水平
    2.大事务的拆分。比如,1000w业务拆分为20次执行。
    
    内部:
    1.二进制日志更新问题:
    解决方案:
    sync binlog=1
    
    2.问题: ―5.7之前的版本,没有开GTID之前,主库可以并发事务,但是dump传输时是串行。所以会导致,事务量,大事务时会出现比较严重延时。
    解决方案:
    5.6+版本,手工开启gtid,事务在主从的全局范围内就有了唯一性标志。
    5.7+版本,无需手工开启,系统会自动生成匿名的GTID信息
    有了GTID之后,就可以实现并发传输binlog。
    但是,即使有这么多的优秀特性,我们依然需要尽可能的减少大事务,以及锁影响
    
    判断主库传输不及时:
    	1. seconds behind master
    	2.主库:show master status; 从库:show slave status G
    

    4.2、从库

    外部:网络,从库配置低,参数设定。
    
    内部:
    Io线程:
    	写relay-log -->Io 性能。
    sQL线程:
    	回放sQL默认在非GTID模式下是串行的解决方案:
    	1.开启GTID2.串行改并行
    	5.6+ GTID: database级别,基于库级别sQL线程并发。
    	5.7+ GTID: Logic clock逻辑时钟。保证了同库级别下的事务顺序问题。所以可以理解为基于事务级别的并发回放。
    

    以后生产推荐版本:

    5.6.34+     以上
    5.7.17+		以上
    8.0.17+		以上
    
  • 相关阅读:
    linux上TCP connection timeout的原因查找
    AC-BM算法原理与代码实现(模式匹配)
    URPF技术白皮书
    漫谈协同过滤推荐算法
    自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用
    推荐系统的常用算法,选择,漫谈,推荐系统开源软件汇总
    MySQL索引原理及慢查询优化
    深入详解SQL中的Null
    《Gulp 入门指南》 : 使用 gulp 压缩 JS
    Process Explorer
  • 原文地址:https://www.cnblogs.com/hsyw/p/14022349.html
Copyright © 2011-2022 走看看