从库同步慢首要排查磁盘I/O瓶颈,检查iostat指标、relay_log与datadir分盘、云盘突发性能、内存不足触发swap、SSD磨损及innodb_flush_log_at_trx_commit配置。从库同步慢,先看磁盘 I/O 是不是瓶颈MySQL 从库同步延迟高,硬件层面最常见就是磁盘写入跟不上主库的 binlog 应用节奏。尤其当 relay_log 和 innodb_data_home_dir 共享同一块机械盘(SATA HDD),或 SSD 被其他进程持续刷脏页占满带宽时,Seconds_Behind_Master 就会稳定在几十秒甚至几分钟。用 iostat -x 1 观察 %util 是否长期 >80%,await 是否持续 >20ms ------ 这说明磁盘响应已排队relay_log 建议和 datadir 分盘存放,避免主从日志写入争抢同一物理队列如果用的是云盘(如 AWS gp3、阿里云 ESSD),注意是否启用了突发性能模式(Burst Balance 接近 0)导致 IOPS 被限速内存不足导致 relay log 刷盘频繁从库靠 SQL 线程读取 relay_log 并执行,但若 relay_log_space_limit 设得太小,或系统内存吃紧触发内核 swap,就会迫使 MySQL 频繁将 relay 日志刷到磁盘,打断连续读取流程。relay_log_space_limit 默认为 0(无限制),但若手动设成 1G 又没配足够内存,容易触发强制轮转和 fsync检查 free -h 中 available 是否低于 innodb_buffer_pool_size 的 1.2 倍 ------ 否则 InnoDB 缓冲池抖动会拖慢 SQL 线程解析速度确认 vm.swappiness 是否 >1;生产环境建议设为 1 或 0,避免因 swap 引发 IO 放大SSD 耐久性下降影响随机写性能用了一年以上的消费级 NVMe 盘(如 Samsung 970 EVO)或老旧 SATA SSD,在大量 relay log 小文件写入 + InnoDB redo log 持续刷盘场景下,可能因磨损均衡策略失效,导致随机写延迟飙升,表现为 SHOW PROCESSLIST 中 SQL 线程常处于 Writing to net 或 Updating 状态但进展缓慢。 AI Code Reviewer AI自动审核代码
相关推荐
就叫_这个吧5 小时前
Redis从基础命令到核心机制简单介绍dear_bi_MyOnly5 小时前
【MyBatis 操作数据库】DBA_G6 小时前
南大通用GBase 8s数据库新存储引擎核心能力二_Jimmy_7 小时前
Agent 溯源精度提升方案衣乌安、8 小时前
数据库事务原理与回滚机制CodexDave8 小时前
PostgreSQL 明明有索引却选了 Nested Loop:从行数误判修正执行计划SamChan909 小时前
在Web应用中集成PDF多语言翻译功能:PDFTranslator API实战指南天天进步20159 小时前
Python全栈项目--智能办公自动化系统颜酱9 小时前
09 | 重构项目结构czhaii10 小时前
STC ai助手单片机工程项目创建实例