MySQL 优化从库延迟的一些思路

作者:孙绪宗,新浪微博 DBA 团队工程师,主要负责 MySQL、PostgreSQL 等关系型数据库运维。

爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

本文约 1000 字,预计阅读需要 3 分钟。

引言

在数据库运维过程中,无论是迁移扩容还是生产投量,都必不可少的会遇到从库迁移追不上的问题。这些问题令人头疼。

以下列举几个我个人遇到过的原因:

  • buffer_pool设置过大,导致 MySQL 使用 SWAP
  • 备份导致 SQL_THREAD 回放等待 MDL
  • 大事务
  • 慢查询导致从库性能低下
  • 并行复制导致从库延迟监控一直为 1s
  • 网络问题

具体情况具体分析,这里不赘述。

如果你在常规排查之后,依然无法解决。接下来,我将根据自身的一些经验,提供一些参数调整思路,供大家参考。

思路一:sync 相关

我们在追延迟的情况,可以调整一下参数,增加日志落盘效率。后续上线从库可以再设置回来。

sync_binlog=0 sync_master_info=10000 #default sync_relay_log=10000 #default sync_relay_log_info=10000 #default

思路二:buffer 和并发等相关

可以考虑增加一下buffer_pool,SQL_THREAD 回放执行的更快。

如果内存空间不足的话,可以适当调整change buffer的比例(前提是无读,正常情况下延迟库均为无业务连接)。

innodb_buffer_pool_size=24G #24*1024*1024*1024 innodb_change_buffer_max_size=50 innodb_thread_concurrency=0 innodb_adaptive_hash_index=0

增大innodb_buffer_pool_size风险点:

  1. 内存过度分配导致 SWAP 触发或 OOM,需预留足够内存给系统和 MySQL 其他组件,建议缓冲池不超过物理内存的 70%;
  2. 调整需分步进行,结合系统内存监控,避免一次性设置过大。

思路三:slave 相关

考虑开启并行复制

开启并行复制,8.0+ 版本考虑用 writeset。复制线程可以多观察一下,如果没够的话,可以考虑增加。但不建议超过 CPU 核心数或者innodb_thread_concurrency参数值。

slave_preserve_commit_order会加一层锁,追延迟的时候建议关闭,后续上线从库可以再打开。

slave_parallel_type=LOGICAL_CLOCK slave_parallel_workers=16 slave_preserve_commit_order=OFF

个人不建议修改以下参数,性能虽然会有所增长,但同时会导致主库commit等待。当然部分非实时类业务可以调整。

binlog 的组提交的两个有关参数:

  • binlog_group_commit_sync_delay参数,表示延迟多少微秒后才调用 fsync 刷盘;
  • binlog_group_commit_sync_no_delay_count参数,表示累积多少次以后才调用 fsync。

考虑关闭 log_slave_updates

log_slave_updates这个需要重启生效。但是有 gdb 经验的小伙伴可以 gdb 修改,不需要重启,只需要重启 slave 复制即可生效。无 gdb 经验可能会导致 crash 不建议。

同时注意需要了解架构,没有 binlog 备份或者级联库,且无业务连接,建议可以关闭。

思路四

MGR 架构可以考虑先改为异步复制,关闭slave_preserve_commit_order,待延迟追完后再加入到集群。

思路五

其他性能参数按照模板理论上不会有太大问题,这套操作下来延迟大概率会有所下降,降为 0 只是时间问题。

附录

并行复制积压日志解析:

2021-01-10T16:08:39.947611+08:00 85441 [Note] Multi-threaded slave statistics for channel '';seconds elapsed = 120;events assigned = 4005889;worker queues filled over overrun level = 0;waited due a Worker queue full = 0;waited due the total size = 0;waited at clock conflicts = 6918018179200 waited (count) when Workers occupied = 0 waited when Workers occupied = 0 -------------------------------- Multi-threaded slave statistics for channel ”: seconds elapsed = 120; 每隔120s输出 eventsassigned = 4005889; 总共有多少个event被分配执行 queues filled over overrun level = 0; 多线程同步中,worker 的私有队列长度超长的次数 waited due aWorker queue full = 0; 因为worker的队列超长而产生等待的次数 waited due the total size = 0; 超过最大size的次数 waited at clock conflicts= 6918018179200;因为逻辑时间产生冲突的等待时间,单位是纳秒 waited (count) when Workers occupied = 0 因为workder被占用而出现等待的次数。(总计值) waited when Workers occupied = 0 因为workder被占用而出现等待的总时间,总计值,单位是纳秒

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1129707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件的逻辑块按顺序存放在磁盘的连续物理块中,支持高效的顺序和随机访问

一、文件的物理结构类型连续结构 特点:文件的逻辑块按顺序存放在磁盘的连续物理块中,支持高效的顺序和随机访问。由于无需指针或索引开销,读写速度快。缺点:文件扩展困难(需预留空间或移动整个文件)&#x…

中小企业降本妙招:M2FP CPU版镜像免费部署,省去GPU成本

中小企业降本妙招:M2FP CPU版镜像免费部署,省去GPU成本 📖 项目简介:为何选择M2FP多人人体解析? 在数字内容创作、虚拟试衣、智能安防和人机交互等场景中,人体解析(Human Parsing)…

Meta广告过审难?掌握这些技巧,让过审率提升至 95%

在 Meta(Facebook / Instagram)投放广告时,很多广告主都会遇到类似的问题: 素材明明合规,却反复被拒;账户历史正常,但新广告就是过不了;甚至同一套素材,换个账户就能通过…

发电机的“赛博感官”:在线监测如何预知核电的每一次心跳

核电作为稳定可靠的低碳能源,其价值最终通过汽轮发电机实现。发电机位于“核能-热能-机械能-电能”转换链条的终端,以超过98.5%的效率将机械能转化为电能,直接决定电站经济效益。它通常在高压氢气冷却、高电压电流的极端条件下运行&#xff0…

M2FP在游戏开发中的角色动画应用

M2FP在游戏开发中的角色动画应用 🎮 游戏角色动画的现实挑战 在现代游戏开发中,角色动画是构建沉浸式体验的核心环节。传统流程通常依赖动作捕捉设备或手工关键帧动画,成本高、周期长,且难以实现对真实人体姿态的精细化还原。尤其…

客服工单自动翻译:提升跨国企业响应速度实战

客服工单自动翻译:提升跨国企业响应速度实战 📌 业务背景与挑战 在全球化运营背景下,跨国企业每天需处理大量来自不同国家客户的客服工单。以中国区客户为例,其提交的工单多为中文描述,而海外技术支持团队普遍使用英文…

路径完整地描述了从根目录到目标文件的路径,符合 MS-DOS 的命名规范

(1)全文件名(绝对路径)解析: 题目中说明当前工作目录是 Program,而文件 f1.java 位于其子目录 Java-prog 中。但绝对路径必须从根目录开始。在 MS-DOS 系统中,路径分隔符为反斜杠“\”&#xff…

langchain代理调用本地模型:摆脱对云服务的依赖

langchain代理调用本地模型:摆脱对云服务的依赖 🌐 AI 智能中英翻译服务 (WebUI API) 📖 项目简介 本镜像基于 ModelScope 的 CSANMT (神经网络翻译) 模型构建,提供高质量的中文到英文翻译服务。相比传统机器翻译,CSA…

云启数智一站式元宇宙综合解决方案

在数字化转型浪潮席卷全球的今天,元宇宙作为下一代互联网的演进形态,正逐步从概念走向产业应用。对于众多企业而言,构建属于自己的元宇宙空间意味着全新的交互体验、商业模式与增长机遇。然而,通往元宇宙的道路并非坦途&#xff0…

从选型到落地:脉冲输出模块在工业自动化中的全场景应用

脉冲输出模块是工业自动化控制系统中精准控制执行机构的关键组件,作为PLC、PAC、运动控制器的扩展单元,它能将数字控制信号转换为定频、定宽、定数的脉冲序列,实现对电机转速、执行机构位置、阀门开度等参数的高精度调控。其应用贯穿于智能制…

收藏!Meta超级智能实验室首篇论文:彻底重构RAG,效率飙升30倍

Meta超级智能实验室的“开山之作”正式亮相!其首篇重磅论文提出全新高效解码框架REFRAG,直接重构了经典的检索增强生成(RAG)技术,核心突破在于将首字生成延迟(TTFT)最高拉满30倍加速&#xff0c…

亲测!专业模拟面试公司效果超棒

亲测!专业模拟面试公司效果超棒行业痛点分析当前模拟面试领域正面临诸多技术挑战。一方面,模拟面试的场景真实性不足,多数系统难以精确模拟出真实面试中的复杂环境和突发状况,导致求职者在实际面试中仍会感到不适应。另一方面&…

如何验证翻译质量?CSANMT提供可读性评估参考

如何验证翻译质量?CSANMT提供可读性评估参考 📖 背景与挑战:AI智能中英翻译的“信达雅”难题 随着全球化进程加速,跨语言沟通需求激增。传统机器翻译(如早期统计模型)虽能实现基本语义转换,但译…

M2FP模型在游戏开发中的角色生成技术

M2FP模型在游戏开发中的角色生成技术 🧩 M2FP 多人人体解析服务:从图像理解到角色建模的桥梁 在现代游戏开发中,角色建模与动画制作是内容生产的核心环节。传统流程依赖美术团队手工绘制或3D扫描后处理,成本高、周期长。随着AI技…

包装机械智能改造:8路脉冲输出模块的实战落地

在机械制造业向高精度、高柔性、智能化转型的过程中,脉冲输出模块是底层运动控制的核心组件之一。它能将PLC、工控机、运动控制器的数字指令,转化为精准的脉冲信号,驱动步进电机、伺服电机完成定位、调速、同步等关键动作,广泛适配…

文件的逻辑结构指文件在用户视角下的组织形式

一、文件的逻辑结构 指文件在用户视角下的组织形式,分为两类:有结构的记录式文件 由多个记录构成,每个记录用于描述一个实体或实体集。记录长度可分为定长和变长两种: 定长记录:所有记录长度相同,数据项的位…

韩国KCC无线射频产品强制认证时间与材料

结合 2025 年韩国 KCC 无线射频产品认证的新规调整,针对跨境卖家的实操需求,将强制认证时间节点和分路径材料清单进一步梳理、精简为可直接落地的实操指南,核心信息如下:一、核心强制认证时间节点(2025 年新规后&#…

如何选择3D云渲染平台:关键因素与实用指南

在数字创意行业飞速发展的今天,3D云渲染已成为动画制作、影视特效、建筑可视化等领域不可或缺的工具。它通过云计算技术,将繁重的渲染任务转移到云端,帮助用户节省本地资源、加速项目进程。然而,面对市场上众多的云渲染服务商&…

社交媒体跨文化传播:评论自动翻译与情感保留

社交媒体跨文化传播:评论自动翻译与情感保留 🌐 AI 智能中英翻译服务 (WebUI API) 📖 项目简介 本镜像基于 ModelScope 的 CSANMT (神经网络翻译) 模型构建,提供高质量的中文到英文智能翻译服务。该模型由达摩院研发,…

美国 FCC 认证的材料要求与有效期

一、 FCC 认证材料补充:分路径细化清单 2025 新规实操要求(一) FCC ID(无线设备,强制认证):材料包的 “必选 新增” 明细除了你提到的核心文件,需明确材料格式、签署要求及2025 供…