首页/开发/软件测试速查/平均延迟陷阱

平均延迟陷阱

请求延迟通常呈长尾分布:平均值达标不代表体验达标,少数慢请求会显著抬高 P99 却拉不动平均值。对外承诺与内部告警都应基于分位指标。

软件测试速查开发更新于 2026-10-13

平均延迟陷阱是什么

请求延迟通常呈长尾分布:平均值达标不代表体验达标,少数慢请求会显著抬高 P99 却拉不动平均值。对外承诺与内部告警都应基于分位指标;只盯平均延迟,会放任「大部分很快、少数极慢」的形态长期存在,直到用户投诉才被发现。

基本信息

分布形态长尾:多数请求快,少数极慢
平均值弱点被大量快请求稀释,掩盖慢尾
替代指标P95、P99、最大值与错误率
解读方法分位给结论,直方图给形态,两者结合
应用场景SLO 承诺、告警阈值、压测验收统一用分位

示例

示例
# 1000 个请求:950 个约 20ms,50 个约 500ms
平均值 = (950x20 + 50x500) / 1000 = 44ms
P95 约 20ms;P99 约 500ms
# 平均看起来不错,每 100 个请求仍有约 5 个经历 500ms

典型使用场景

  • SLO 设计:按分位数写目标,平均值只作参考。
  • 压测验收:报告拆到接口与分位,避免一刀切。
  • 告警阈值:对 P99 设置告警,慢尾恶化第一时间可见。
  • 体验复盘:用户投诉卡顿时用分位数据定位时段与接口。
  • 优化排序:按分位贡献最大的接口优先治理。
  • 版本回归:比同一分位的版本间变化,而不是比均值。

延伸用法

  • 容量评估:用分位拐点判断容量余量,而不是均值拐点。
  • 变更验证:优化声明承诺改善的分位,回归时逐一复核。
该组数据里平均值(44ms)看起来不错,但每 100 个请求就有约 5 个经历 500ms;分位才能揭示这一点。
对外承诺写清口径:哪个接口、哪个分位、多大流量下,写明后才可验证。
分位数要同口径比较:同一时间窗、同一采样点、同一负载模型,跨条件比较会得出误导结论。
直方图是补充证据:分位判断是否达标,直方图判断是偶发抖动还是系统性劣化。

易错点

  • 平均值达标即放行,用户侧感受到的卡顿无人对账
  • 只报一个总分位不拆分接口与阶段,定位不了慢点
  • 算术平均与分位混着汇报,评审各看各的数字
  • 采样窗口过短,长尾事件正好落在窗口外
  • 分位计算方式不统一(插值方法不同),跨工具数字对不上
  • P99 报表未标注样本量,基数小的时段数字剧烈波动

数据来源与参考

  • Google SRE Book:Monitoring Distributed Systems(分位指标)
  • k6 官方文档:Metrics(Trend)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌