首页/数据/Redis 进阶速查/延迟百分位:p99 才是体验
性能与排障129 条

延迟百分位:p99 才是体验

平均值掩盖长尾:看 p50 判常态、p99 判大多数人最差体验、p999 判极端尾部;按业务容忍度选目标百分位。

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

为什么看百分位

平均值会掩盖长尾,延迟要看百分位:p50 反映日常水平,p99 代表大多数用户碰到的最差情况,p999 暴露极端尾部。目标档位按业务容忍度选:接口级 SLA 常盯 p99,对个别请求也敏感的场景还要看 p999 与超阈值次数。百分位必须与统计窗口配对,短窗口的 p999 波动很大。

基本信息

p50一半请求快于这个值,代表日常水平
p99尾部体验的主力档位,常作为 SLA 目标
p999极端尾部,适合看趋势而不是单点
统计窗口窗口越短波动越大,需与业务周期匹配
数据来源INFO latencystats(需先开启延迟监控)与客户端侧观测

典型使用场景

  • 接口 SLA:把 p99 作为对外承诺档位,比平均值更贴近体验
  • 容量评估:扩容前后对比同一档位,判断尾部是否改善
  • 排查定位:p99 抬高而 p50 正常,通常指向排队或偶发阻塞
  • 压测报告:把分位表归档,变更前后对照同一档位
  • 告警设计:用分位与超阈值次数组合,避免被单点极值触发
  • 排障交叉验证:分位异常时用慢日志取样本,确认是命令本身还是排队导致

取分位与环境对照

取分位与环境对照
redis-cli INFO latencystats          # 分命令延迟分位
redis-cli --latency-history -i 5     # 时间序列,看分位随时间波动
redis-cli INFO commandstats          # 平均耗时作为参照
redis-cli LATENCY LATEST             # 延迟事件的最近与最大耗时
redis-cli LATENCY HISTORY command    # 单个事件的历史序列

档位读法

档位回答的问题注意
p50常态有多快掩盖尾部,不能单独使用
p99多数用户最差到什么程度SLA 常用档位
p999极端尾部有多差波动大,看趋势
平均值整体均值被尾部稀释,仅作参照
百分位与统计窗口必须配对:短窗口百分位跳动剧烈,用几分钟的数据判断趋势容易得出相反结论,至少覆盖一个完整业务周期。
只报平均延迟会把尾部问题藏进报表:平均值改善而 p99 没动,用户感受不会变好,据此宣布优化成功属于自我安慰。

易错点

  • 只报平均延迟:尾部问题在报表里隐身,优化方向也容易跑偏
  • 用单点 p999 判断趋势:极端尾部波动大,需要时间序列支撑
  • 统计窗口过短:拿几分钟的数据下结论,结论往往不可靠
  • 不同并发或不同数据集下对比分位:变量不一致,结论可能完全反向

数据来源与参考

  • Redis 官方文档:延迟指标
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌