首页/数据/Redis 进阶速查/latency-monitor-threshold 开启延迟监控
性能与排障129 条

latency-monitor-threshold 开启延迟监控

latency-monitor-threshold 设置延迟监控阈值(毫秒,0 关闭);开启后 Redis 按事件类别记录延迟尖峰,供 LATENCY 命令族查询。

Redis 进阶速查数据更新于 2026-10-13

latency-monitor-threshold 是什么

latency-monitor-threshold 以毫秒为单位设置延迟监控阈值,默认 0 表示关闭。开启后 Redis 按事件类别记录超过阈值的延迟尖峰,事件包括命令执行、fork、过期循环、淘汰循环、AOF 刷盘等,可用 LATENCY 命令族查询。它属于事件级观测,与命令级百分位统计是两个不同的开关。

基本信息

配置项latency-monitor-threshold
单位毫秒
默认值0(关闭)
数据量每类事件只保留最近若干条(默认 160 条)
查询命令LATENCY LATEST / HISTORY / RESET / DOCTOR
区别与 latency-tracking 不同,后者产出命令级百分位

典型使用场景

  • 偶发卡顿排查:业务报警延迟毛刺但慢日志为空时,用它看是否发生在 fork 或过期环节
  • 持久化评估:对照 RDB 或 AOF 重写时间点判断尖峰来源
  • 上线观测:变更窗口内开启,观察新版本是否引入新的延迟事件
  • 容量验证:压测时开启,看各类事件的响应是否还在容忍范围内
  • 例行健康检查:低阈值长期开启,配合告警做趋势观察

开启与查询

开启与查询
redis-cli CONFIG SET latency-monitor-threshold 100   # 记录 100 毫秒以上的事件
redis-cli LATENCY LATEST                              # 各类事件的最新值与峰值
redis-cli LATENCY HISTORY fork                       # 看 fork 事件的历史尖峰
redis-cli LATENCY DOCTOR                             # 给出人类可读的建议
redis-cli LATENCY RESET                              # 清空历史,便于观察新窗口
redis-cli CONFIG SET latency-monitor-threshold 0      # 排查结束后关闭

常见事件类别

事件含义常见来源
command慢命令执行复杂命令或大键操作
fork创建子进程耗时RDB 保存、AOF 重写
expire-cycle过期键清理循环集中过期导致的批量清理
eviction-cycle内存淘汰循环内存贴线运行
aof-fsync-alwaysAOF 每写刷盘耗时磁盘抖动
阈值要设在业务能感知的量级(例如 50 到 100 毫秒):设得太大抓不到毛刺,设得太小则充满噪声,需要按自己的容忍度校准。
事件类别的名称是英文枚举,理解含义比死记名称重要:fork 类事件几乎都指向持久化,而不是网络问题。
版本差异要留意:7.0 起新增的命令级延迟跟踪(latency-tracking)与它产出百分位,是另一套开关,两者可以同时开启,互不替代。

易错点

  • 阈值设得过大抓不到业务实际抱怨的毛刺,监控开着却没有任何记录
  • 开启后从不查看 LATENCY 输出,监控形同虚设
  • 把 LATENCY 事件当成命令延迟全貌,忽略命令级百分位统计
  • 长期在低阈值下开启也不评估额外开销,实测数据被观测行为本身影响

数据来源与参考

  • Redis 官方文档:延迟监控说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌