首页/开发/软件测试速查/延迟分位指标

延迟分位指标

延迟看分位:P50 中位体验、P90/P95 常见服务目标、P99 反映长尾;平均值会掩盖长尾。报告中应同时给出分位数值与采样窗口口径。

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

延迟分位指标是什么

延迟要按分位看:P50 反映典型用户体验,P90/P95 是常见的服务目标线,P99 与更高分位揭示长尾。平均值会被少量极慢请求和大量极快请求互相抵消,掩盖真实分布;分位数直接回答「百分之多少的请求快于该值」。报告中给出分位时,应同时说明采样窗口与口径,否则数字之间无法比较。

基本信息

常见分位P50、P90、P95、P99、P99.9 与最大值
统计对象请求耗时(含排队与网络时间时需注明口径)
联合指标与错误率、吞吐量一起解读,缺一不可
采样窗口统计区间与样本量必须随分位一起给出
工具差异不同工具的分位算法与聚合窗口可能不同
使用方式SLO 目标、发版对比、容量评估的通用语言

分位怎么读

分位含义用途
P50一半请求快于该值用户典型体验
P90/P95尾部起始区间服务目标与回归对比
P99长尾关注点容量与稳定性评估
P99.9/max极端样本排查线索(样本少时谨慎解读)

典型使用场景

  • SLO 看板:以 P95 或 P99 设定目标并持续监控。
  • 发版对比:新版与基线在相同窗口下比较分位变化。
  • 压测报告:以分位数为主、均值为辅呈现结果。
  • 故障复盘:从长尾样本定位慢请求的共性与来源。
  • 容量评估:观察分位随负载上升的拐点位置。
  • 体验分层:向业务解释典型用户与尾部用户的差距。

阈值设置示意

阈值设置示意
// k6 阈值:同时约束长尾延迟与错误率
thresholds: {
  http_req_duration: ['p(95)<300', 'p(99)<800'],  // 分位目标
  http_req_failed: ['rate<0.01'],                  // 错误率目标
}
对比不同工具的分位时先核对算法与窗口(是否含错误请求、统计区间),口径不同直接比较会得出错误结论。
分位必须与错误率联合解读:失败的请求往往更快返回,压测里错误率上升时延迟数字反而变「好看」,只看延迟会得出反向结论。
样本量决定尾部分位的可信度:几百个样本里的 P99.9 没有统计意义,报告里应注明样本量。

易错点

  • 用平均值报告性能结论:长尾问题被抹平,用户投诉与数据对不上。
  • 跨工具直接对比分位:算法与口径不同,结论不成立,至少先对齐采样与统计方式。
  • 只看延迟不看错误率:失败请求「拉低」延迟,性能改善假象掩盖服务退化。
  • 小样本解读高尾分位:个位数样本得出的 P99 是噪声不是信号。
  • 对比两版性能时窗口与流量模型不一致:差异无法归因到版本变化本身。

数据来源与参考

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