返回顶部
首页 > 资讯 > 数据库 >MySQL中如何优化Slave延迟
  • 682
分享到

MySQL中如何优化Slave延迟

2024-04-02 19:04:59 682人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Mysql中如何优化Slave延迟,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 一般而言,slave相对ma

这篇文章将为大家详细讲解有关Mysql中如何优化Slave延迟,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MySQL中如何优化Slave延迟

一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的apply,所以难怪slave在高并发时会远落后master。

   oracle mysql 5.6版本开始支持多线程复制,配置选项 slave_parallel_workers 即可实现在slave上多线程并发复制。不过,它只能支持一个实例下多个 database 间的并发复制,并不能真正做到多表并发复制。因此在较大并发负载时,slave还是没有办法及时追上master,需要想办法进行优化。

   另一个重要原因是,传统的MySQL复制是异步(asynchronous)的,也就是说在master提交完后,才在slave上再应用一遍,并不是真正意义上的同步。哪怕是后来的Semi-sync Repication(半同步复制),也不是真同步,因为它只保证事务传送到slave,但没要求等到确认事务提交成功。既然是异步,那肯定多少会有延迟。因此,严格意义上讲,MySQL复制不能叫做MySQL同步(处女座的面试官有可能会在面试时把说成MySQL同步的一律刷掉哦)。

   另外,不少人的观念里,slave相对没那么重要,因此就不会提供和master相同配置级别的服务器。有的甚至不但使用更差的服务器,而且还在上面跑多实例。

   综合这两个主要原因,slave想要尽可能及时跟上master的进度,可以尝试采用以下几种方法:

  • 采用MariaDB发行版,它实现了相对真正意义上的并行复制,其效果远比ORACLE MySQL好的很多。在我的场景中,采用MariaDB作为slave的实例,几乎总是能及时跟上master。如果不想用这个版本的话,那就老实等待官方5.7大版本发布吧;

       关于MariaDB的Parallel Replication具体请参考:Replication and Binary Log Server System Variables#slave_parallel_threads – MariaDB Knowledge Base

  • 每个表都要显式指定主键,如果没有指定主键的话,会导致在row模式下,每次修改都要全表扫描,尤其是大表就非常可怕了,延迟会更严重,甚至导致整个slave库都被挂起,可参考案例:mysql主键的缺少导致备库hang;

  • 应用程序端多做些事,让MySQL端少做事,尤其是和IO相关的活动,例如:前端通过内存CACHE或者本地写队列等,合并多次读写为一次,甚至消除一些写请求;

  • 进行合适的分库、分表策略,减小单库单表复制压力,避免由于单库单表的的压力导致整个实例的复制延迟;

  • 其他提高IOPS性能的几种方法,根据效果优劣,我做了个简单排序

  • 更换成SSD,或者PCIe SSD等IO设备,其IOPS能力的提升是普通15K SAS盘的数以百倍、万倍,甚至几十万倍计;

  • 加大物理内存,相应提高InnoDB Buffer Pool大小,让更多热数据放在内存中,降低发生物理IO的频率;

  • 调整文件系统为 XFS 或 ReiserFS,相比ext3可以极大程度提高IOPS能力。在高IOPS压力下,相比ext4有更稳健的IOPS表现(有人认为 XFS 在特别的场景下会有很大的问题,但我们除了剩余磁盘空间少于10%时引发丢数据外,其他的尚未遇到);

  • 调整RaiD级别为raid 1+0,它相比raid1、raid5等更能提高IOPS性能。如果已经全部是SSD设备了,可以2块盘做成RAID 1,或者多快盘做成RAID 5(并且可以设置全局热备盘,提高阵列容错性),甚至有些土豪用户直接将多块SSD盘组成RAID 50;

  • 调整RAID的写cache策略为WB或FORCE WB,详情请参考:常用PC服务器阵列卡、硬盘健康监控 以及 PC服务器阵列卡管理简易手册;

  • 调整内核的io scheduler,优先使用deadline,如果是SSD,则可以使用noop策略,相比默认的cfq,个别情况下对IOPS的性能提升至少是数倍的。

关于“MySQL中如何优化Slave延迟”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中如何优化Slave延迟

本文链接: https://www.lsjlt.com/news/63293.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中如何优化Slave延迟
    这篇文章将为大家详细讲解有关MySQL中如何优化Slave延迟,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 一般而言,slave相对ma...
    99+
    2024-04-02
  • Mysql slave延迟故障分析
    这篇文章主要介绍“Mysql slave延迟故障分析”,在日常操作中,相信很多人在Mysql slave延迟故障分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql ...
    99+
    2024-04-02
  • 从Mysql slave system lock延迟说开去
    本文主要分析 sql thread中system lock出现的原因,但是笔者并明没有系统的学习过master-slave的代码,这也是2018年的一个目标,2018年我都排满了,悲剧。所以如果有错误请...
    99+
    2024-04-02
  • mysql常见slave延迟原因有哪些
    这篇文章主要介绍了mysql常见slave延迟原因有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一  序言 在运维线上M-...
    99+
    2024-04-02
  • 【MySQL】 性能优化之 延迟关联
    【背景】   某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下。使用工具查看数据库正在执行的sql ,排在前面的大部分是: SELECT id...
    99+
    2024-04-02
  • Cassandra的延迟查询是如何优化的
    Cassandra 的延迟查询优化主要是通过以下几种方式来实现的: 数据分片:Cassandra 使用数据分片来分散数据存储在集...
    99+
    2024-04-09
    Cassandra
  • 云服务器延迟优化
    云服务器延迟优化指的是对服务器进行自动化的性能监控和调优,以减轻服务器在运行状态下的负载,提高服务器整体的性能和响应时间。以下是一些可以帮助减少云服务器延迟的方法: 使用 CDN 服务:使用 CDN 服务可以将流量分发到各个服务器上,从...
    99+
    2023-10-26
    服务器
  • MySQL slave 延迟一列 外键检查和自增加锁
    目录MySQL slave 延迟 外键检查和自增加锁一、现象二、pscak 采样三、自增锁获取逻辑四、方案MySQL slave 延迟 外键检查和自增加锁 一、现象 延迟大,大事...
    99+
    2024-04-02
  • 怎么解决Mysql中Slave延迟很大并且不动了问题
    这篇文章主要介绍“怎么解决Mysql中Slave延迟很大并且不动了问题”,在日常操作中,相信很多人在怎么解决Mysql中Slave延迟很大并且不动了问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • MySQL同步延迟如何解决
    本篇文章为大家展示了MySQL同步延迟如何解决,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1:应用解决方案在开发中,假设延迟是存在的,对于核心业务必须要严谨,比如...
    99+
    2024-04-02
  • 云服务器延迟优化怎么设置
    2、清除缓存:清除云服务器的缓存可以释放内存和磁盘空间,提高服务器的响应速度。 3、优化网站:可以通过设置网站的优化参数,如网站的图片、视频等过大时,可以通过压缩等方式降低网站的大小。 4、调整虚拟目录:可以通过调整虚拟目录的大小,优化网...
    99+
    2023-10-27
    服务器
  • 云服务器延迟优化怎么解决
    一、延迟分析 首先,我们需要对云服务器的延迟进行分析。延迟的主要原因有以下几个方面: 数据处理过程:云服务器需要处理大量的数据,这些数据需要被传输到用户的终端设备上,这就需要一定的延迟时间。 网络传输:用户的终端设备需要连接到云服务器上...
    99+
    2023-10-27
    服务器
  • 优化ODBC Oracle连接减少网络延迟
    有几种方法可以优化ODBC Oracle连接以减少网络延迟: 使用连接池:连接池可以减少连接的建立和销毁次数,从而减少网络延迟。通过使用连接池,可以重复使用已经建立的连接,避免每次都重新连接到数据库。 调整连接超时设置:将连接超时设...
    99+
    2024-07-15
    oracle
  • mysql复制slave服务器数据延迟的原因与解决方法
    mysql复制slave服务器数据延迟的原因与解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。复制slave服务器数据延...
    99+
    2024-04-02
  • Mysql如何实现主从延迟监控
    这篇文章主要介绍了Mysql如何实现主从延迟监控,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Mysql 主从延时监控 pt-hear...
    99+
    2024-04-02
  • mysql如何解决主从延迟问题
    mysql解决主从延迟问题的方法:在命令行设置参数slave_parallel_workers的值大于0和slave_parallel_type='LOGICAL_CLOCK'。选择合适的分库、分表策略,避免单表单库过大。避免被无用的I/O...
    99+
    2024-04-02
  • 分析SQL优化的limit分页延迟关联
    这篇文章主要介绍“分析SQL优化的limit分页延迟关联”,在日常操作中,相信很多人在分析SQL优化的limit分页延迟关联问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析...
    99+
    2024-04-02
  • 云服务器延迟优化怎么解决的
    一、延迟优化 延迟是云服务器性能瓶颈之一,主要是指云服务器的处理能力与用户请求之间的延迟。云服务器的延迟主要受到以下几个方面的影响: 处理能力 云服务器通常都是按照一定的算法进行计算的,这就决定了云服务器的处理能力受到硬件配置、内存容...
    99+
    2023-10-27
    服务器
  • 云服务器延迟优化怎么设置的
    一、云服务器延迟优化设置 设置延迟阈值 延迟阈值是一种常用的优化参数,它可以设置一个固定的阈值,当达到该阈值时,云服务器才会启动相应的优化程序。但是,这种优化方式并不总是能够达到最佳的优化效果,因为它受到很多因素的影响,如网络延迟、带...
    99+
    2023-10-28
    服务器
  • 云服务器延迟优化怎么设置好
    一、设置合适的网络带宽和服务器负载均衡 网络带宽是云服务器性能的关键因素之一。在选择带宽时,需要根据数据流量和网络性能来确定最佳带宽。如果数据流量很大,网络带宽必须足够宽,以便能够承载更多的数据流量。同时,还需要根据业务需求和性能要求来确...
    99+
    2023-10-28
    服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作