同步并发度控制什么
故障切换完成后,各从库都要重新向新主库做同步。parallel-syncs 限制同一时刻允许几个从库并行发起同步,默认 1,也就是排队依次进行。数值小,新主库负载平滑、对外服务能力渐进恢复;数值大,整体同步更快收敛,但切换瞬间新主库要同时应付多路全量传输,CPU、内存与网络都可能被压满。
基本信息
| 默认值 | 1(每次只允许一个从库同步) |
|---|---|
| 配置位置 | sentinel.conf 中按主库名分组配置 |
| 运行时调整 | SENTINEL SET <master> parallel-syncs <n> |
| 查看方式 | SENTINEL MASTER <master> 输出中的 parallel-syncs 字段 |
| 影响面 | 切换后的服务恢复速度与新主库瞬时压力 |
典型使用场景
- 从库数量较多时保护新主库,避免切换瞬间被多路全量同步压垮
- 磁盘与网络强劲的环境适当调大,让整体更快重新同步完成
- 切换演练中观察各副本的恢复节奏,验证参数是否合理
- 从库启用无盘加载时同步内存峰值叠加,需要更保守的取值
- 评估切换后服务能力恢复到正常水平所需的时间
查看与调整
查看与调整
redis-cli -p 26379 SENTINEL MASTER mymaster | grep parallel-syncs
redis-cli -p 26379 SENTINEL SET mymaster parallel-syncs 2 # 允许两个从库并行同步
redis-cli -p 26379 SENTINEL MASTER mymaster | grep 'num-slaves' # 从库总数,据此决定取值
redis-cli -p 6379 INFO replication | grep -E 'sync_full|slave0' # 切换后观察同步情况取值对照
| 取值 | 表现 | 适用判断 |
|---|---|---|
| 1 | 顺序同步,新主库压力最小 | 从库较多或新主库规格一般时的默认选择 |
| 2 到 3 | 恢复速度加快,压力可控上升 | 磁盘与网络充裕、希望缩短收敛时间 |
| 过大数值 | 多路全量并行,延迟与内存峰值叠加 | 仅在充分压测后谨慎使用 |
这个参数配置在哨兵一侧,而不是数据节点上,改错了地方不会生效,别去 Redis 实例的配置文件里找。
从库数量少时调大意义有限,反而增加切换瞬间的不确定性;参数调整最好配合一次切换演练来确认效果。