协调遗漏是什么
协调遗漏(coordinated omission)是压测中的系统性测量误差:当工具为等待上一个响应而推迟发送下一个请求时,这段被迫等待的时间不会被计入任何请求的延迟。结果是——压测机停顿(如 GC、调度)或服务变慢时,响应时间统计反而显得平静,延迟被系统性低估,对外承诺的指标失真。
基本信息
| 本质 | 迟到发送的请求,其等待时间被剔除出延迟统计 |
|---|---|
| 高发场景 | 闭环模型(固定并发,响应后再发下一请求) |
| 影响 | 对外承诺的延迟指标被低估,容量结论偏乐观 |
| 缓解手段 | 开环按到达率发送,或使用校正计时的工具 |
| 复核方法 | 对比实测吞吐与目标到达率是否一致 |
| 对外承诺 | 确认测量方法无系统性低估后再引用数字 |
闭环与开环对比
闭环与开环对比
闭环:每个虚拟用户等待响应后再发起下一请求
停顿后继续跑:迟到的请求不被记为慢,统计反而变好
开环:按目标到达率(如 200 请求/秒)定时发送,迟到照记
复核:实测吞吐明显低于目标到达率时,先怀疑工具侧瓶颈典型使用场景
- 容量评估:验证高负载下延迟分布是否被低估。
- 指标评审:评审对外 SLA 数据前,确认压测方法是否校正过。
- 工具对比:分析不同压测工具产生同一场景数据差异的原因。
- 压测机自查:排查压测机 CPU、GC 停顿造成的工具侧瓶颈。
- 故障复现:复现线上缓慢场景时,避免闭环模型掩盖真实延迟。
- 方法培训:向团队解释「为什么数字好看不代表系统稳」。
现象与处理
| 现象 | 原因 | 处理 |
|---|---|---|
| 停顿后延迟统计变好 | 等待时间未计入任何请求 | 改用开环到达率模型 |
| 实测吞吐远低于目标到达率 | 压测机或链路先饱和 | 查明瓶颈再提高目标 |
| 不同工具结果差异大 | 模型与计时方法不同 | 统一模型与口径后再比较 |
| 长尾指标平缓不真实 | 闭环下慢请求被摊薄 | 用校正计时工具或开环模式重测 |
闭环模型不是不能用:日常冒烟与相对对比没问题,关键在于别把它的绝对值直接对外承诺。
开环模型下也要盯压测机自身资源:到达率发不出去时,同样会失真。
校正计时会让长尾指标显著变差——这是接近真实的数字,不是工具坏了。