讲师中心 微信公众号

工具推荐

视频效率加速
Seko
Seko

AI短剧一键生成成片

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Laper
Laper

剧本策划到成片协作

updream

一键生成高质量推广成片

Redis如何监控持久化导致的延迟_开启latency-monitor追踪fsync耗时

冬瑶君_3732

冬瑶君_3732

发布时间:2026-03-22 13:45:13

|

312人浏览过

|

来源于php中文网

原创

Redis latency-monitor 能抓到 fsync 延迟,但需手动启用 latency:fsync 事件并设置合理阈值;仅主线程 AOF append 的 fsync 可被监控,RDB/AOF rewrite 子进程的 fsync 不计入;延迟高未必磁盘忙,可能受文件系统、脏页策略或容器 SELinux 标签影响。

redis如何监控持久化导致的延迟_开启latency-monitor追踪fsync耗时

Redis latency-monitor 能不能直接抓到 fsync 延迟

能,但得配对用——latency-monitor 本身不区分延迟来源,它只记录事件耗时;真正把 fsync 拉进监控视野的,是 latency-monitor-threshold 配合 latency monitor 的事件类型识别。默认它不监控 fsync,必须手动开启对应事件。

  • latency-monitor-threshold 设太低(比如 1ms),会高频打点,影响性能;设太高(比如 100ms),fsync 慢了你也收不到告警
  • Redis 6+ 默认开启 latency:command 和 latency:slowlog,但 latency:fork 和 latency:fsync 是关闭的,要显式启用
  • 启用方式不是改配置文件就完事——得用 CONFIG SET 同时打开阈值和事件:先 CONFIG SET latency-monitor-threshold 5,再 CONFIG SET latency-events "command,fsync"

怎么确认 fsync 真的被 latency-monitor 捕获到了

靠 LATENCY LATEST 和 LATENCY HISTORY fsync。前者只返回最近一次超阈值的 fsync 记录,后者能看过去 128 条(固定长度),适合排查偶发卡顿。

  • 如果 LATENCY HISTORY fsync 返回空,说明要么没触发超阈值,要么 fsync 事件根本没开——检查 CONFIG GET latency-events 输出里有没有 fsync
  • 注意:RDB 快照期间的 fsync 来自子进程,AOF rewrite 期间的 fsync 也来自子进程,但 latency-monitor 只在主线程上下文记录;所以只有 AOF append 模式下主线程调用的 fsync 才会被捕获(即 appendfsync always 或 everysec 的刷盘时刻)
  • appendfsync no 时,主线程从不调 fsync,LATENCY HISTORY fsync 永远为空——这不是 bug,是设计如此

为什么看到 fsync 延迟高,但磁盘 I/O 并不忙

常见于使用 ext4 + data=ordered 模式、或 XFS + barrier=1 的文件系统,fsync 不仅刷数据,还要等日志提交完成,而日志落盘可能被其他进程阻塞,或受存储设备写缓存策略干扰。

  • Linux 的 vm.dirty_ratio 和 vm.dirty_background_ratio 如果设得过高,内核会攒大量脏页,导致 fsync 时被迫回写,耗时陡增
  • NVMe 盘开启 Write Cache 但未配 barrier,fsync 可能假快真慢——实际数据还在易失缓存里,断电即丢;而 latency-monitor 测到的是系统调用返回时间,不是数据落盘时间
  • 容器环境(如 Docker)挂载卷时用了 :z 或 :Z SELinux 标签,可能引入额外元数据同步开销,也会抬高 fsync 耗时

生产环境开启 fsync 监控要注意什么

别在高峰期临时开,尤其别设 1ms 阈值——latency-monitor 的采样本身有开销,高频触发会挤占主线程 CPU,反而加剧延迟。

  • 建议阈值设为预期 fsync p99 的 1.5 倍,比如实测 p99 是 8ms,就设 latency-monitor-threshold 12
  • 避免在 appendfsync always 场景下长期开启——每条写命令都触发 fsync,采样密度太高,容易掩盖真实毛刺
  • LATENCY RESET fsync 清空历史前,先用 LATENCY GRAPH fsync 看一眼趋势,否则可能漏掉正在发生的持续性升高

fsync 延迟不是独立指标,它和 AOF 缓冲区大小、磁盘调度器、内核版本强耦合——看到异常值,别急着调 Redis,先查 iostat -x 1 和 cat /proc/sys/vm/dirty*。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

相关专题

更多
线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

4738

2023.08.10

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

618

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1496

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

3004

2025.09.12

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

805

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6619

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7757

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3093

2024.04.08

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn