什么原因可能导致主备延迟?

主备延迟最直接的表现是,备库消费中转日志(relay log)的速度,比主库生产 binlog 的速度要慢。

  1. 备库所在机器的性能要比主库所在的机器性能差。这种部署现在比较少了。因为主备可能发生切换,备库随时可能变成主库,所以主备库选 用相同规格的机器,并且做对称部署,是现在比较常见的情况。
  2. 备库的压力大。一般的想法是,主库既然提供了写能力,那么备 库可以提供一些读能力。或者一些运营后台需要的分析语句,不能影响正常业务,所以只能在备库上跑。
  3. 大事务。因为主库上必须等事务执行完成才会写入 binlog,再传给备库。所 以,如果一个主库上的语句执行 10 分钟,那这个事务很可能就会导致从库延迟 10 分钟。所以不要一次性删除大量数据。
  4. 备库没有并行复制能力。下面是其解决方法。

把上图中只有一个线程的 sql_thread,拆成多个线程。

coordinator 就是原来的 sql_thread, 不过现在它不再直接更新数据了,只负责读取中 转日志和分发事务。真正更新日志的,变成了 worker 线程。而 work 线程的个数,就是由参数 slave_parallel_workers 决定的。把这个值设置为 8~16 之间最好(32 核物理 机的情况),毕竟备库还有可能要提供读查询,不能把 CPU 都吃光了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值