延迟跟踪的两个配置项
latency-tracking 决定 Redis 是否按命令记录延迟分布,默认开启;latency-tracking-info-percentiles 决定 INFO latencystats 输出哪些百分位,默认 50 99 99.9。两者合起来构成命令级尾部延迟的观测口径:命令级的 p99 比全局平均值更能说明用户体验。关掉跟踪能省下少量统计开销,代价是同时失去 latencystats 的数据,以及部分依赖该数据源的诊断面板。
基本信息
| 开关项 | latency-tracking |
|---|---|
| 默认值 | yes(开启) |
| 百分位项 | latency-tracking-info-percentiles |
| 默认百分位 | 50 99 99.9 |
| 数据出口 | INFO latencystats |
| 单位 | 微秒 |
| 修改方式 | CONFIG SET 即时生效,重启后回配置文件 |
典型使用场景
- 搭建命令级延迟看板,需要确定采集哪些百分位
- 排查长尾延迟,按 p99 排序找出最差的几个命令
- 抓包或开关诊断功能期间临时降低统计开销
- 临时试验新百分位口径,用 CONFIG SET 快速验证再写进配置
- 核对监控数据缺失原因,确认是否有人关过跟踪
- 为不同业务实例设置不同百分位口径,兼顾精度与开销
- 升级或迁移后对比新旧实例的命令级分布,确认性能未退化
- 为容量评估提供命令级尾部数据,作为扩容决策的输入
查看与调整
查看与调整
redis-cli CONFIG GET latency-tracking # 是否开启跟踪
redis-cli CONFIG GET latency-tracking-info-percentiles # 当前百分位口径
redis-cli INFO latencystats # 按命令看百分位
redis-cli CONFIG SET latency-tracking-info-percentiles "50 99 99.9"
redis-cli CONFIG SET latency-tracking no # 临时关闭,诊断完恢复
redis-cli CONFIG SET latency-tracking yes # 恢复默认口径百分位选择
| 百分位 | 反映的问题 | 适用场景 |
|---|---|---|
| p50 | 常态体验 | 日常趋势与容量基线 |
| p99 | 尾部体验 | SLA 与告警主力 |
| p99.9 | 极端情况 | 容量规划与热点定位 |
百分位不是越多越好:口径越细,统计窗口内样本被摊薄,短周期抖动更难被观察到。
百分位配置改动后,历史曲线与当前曲线的口径将不可直接比较,报表要标注变更时间点。
用 CONFIG SET 关闭跟踪只是运行期生效,若配置文件里仍是关闭状态,重启后会继续失去数据,收尾时别忘记改回。
延迟跟踪与慢日志的分工不同:慢日志给的是超阈值的样本明细,latencystats 给的是所有命令的分布,两者相互印证。