延迟分位指标是什么
延迟要按分位看: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 没有统计意义,报告里应注明样本量。