Redis如何排查主节点磁盘满导致的同步失败_监控bgsave落盘状态与系统剩余空间告警

张开发
2026/4/17 13:44:29 15 分钟阅读

分享文章

Redis如何排查主节点磁盘满导致的同步失败_监控bgsave落盘状态与系统剩余空间告警
主节点磁盘满导致bgsave失败进而使从节点全量同步卡在wait_bgsave状态需通过df -h查Redis实际dir路径磁盘使用率、日志中“No space left on device”报错及info persistence中rdb_bgsave_in_progress异常确认。主节点磁盘满 → bgsave 失败 → 从节点全量同步卡死这是个典型的“连锁雪崩”主节点磁盘写满bgsave 进程无法生成 RDB 文件导致全量同步永远卡在 wait_bgsave 状态。从节点日志里反复出现 MASTER - SLAVE sync: receiving ... bytes from master 然后断开但你查 INFO replication 会发现 master_last_io_seconds_ago 持续增大、slave_repl_offset 停滞不动——问题不在网络或缓存区而在主节点根本没发出 RDB。怎么确认是磁盘满引发的 bgsave 失败别猜直接查三处登录主节点服务器运行 df -h /var/lib/redis或你的 dir 配置路径看是否 Use% ≥95%查 Redis 日志grep Cant save in background /var/log/redis/redis-server.log 或类似报错更直接的是 grep bgsave /var/log/redis/redis-server.log | tail -20常见错误如 Failed to open .rdb for saving: No space left on deviceRedis 内部状态redis-cli info persistence | grep rdb_bgsave_in_progress 如果返回 rdb_bgsave_in_progress:1 却长时间不变成 0且 rdb_last_save_time 不更新基本坐实落盘失败config get dir 和系统磁盘不是一回事务必核对真实路径很多人只查 / 或 /var 分区剩余空间却忽略 Redis 的 dir 配置可能指向独立挂载点比如 /data/redis。这个路径才是 bgsave 写 RDB 的地方。 文小言 百度旗下新搜索智能助手有问题问小言。

更多文章