为什么平均值会误导:p99 延迟才是用户真实感受
发布: (2025年12月30日 GMT+8 08:04)
2 min read
原文: Dev.to
Source: Dev.to
Introduction
大多数性能仪表盘看起来都不错:
- Average latency: low
- CPU: stable
- Memory: healthy
然而用户仍然抱怨“应用感觉很慢”。这并不是谜——而是度量指标的问题。
The problem with averages
想象这样一个系统:
- 99 % 的请求在 10 ms 内完成
- 1 % 的请求耗时 1000 ms
平均延迟约为 20 ms,在图表上看起来很棒。
但每 100 位用户中就有 1 位会经历整整一秒的停顿。这不是边缘案例,而是真实的用户体验。
Why percentiles matter
- p50 – 告诉你典型情况
- p90 / p95 – 显示波动性上升
- p99 – 展示系统真正崩溃的地方
如果你的 p99 很差,系统的感受也会很差——即使平均值看起来完美。
Variance and jitter
高方差往往比整体慢的性能更具破坏性。
- 一个稳定的 40 ms 系统感觉比在 5 ms 与 200 ms 之间跳动的系统更快。
- 这种可变性(抖动)会导致 UI 卡顿、音频故障和帧丢失。
Latency Lens – a lightweight analysis tool
我构建了 Latency Lens,一个专注于尾部行为而非平均值的小型 CLI 工具。它提供:
- p50 / p90 / p95 / p99
- 抖动(标准差和 MAD)
- 峰值检测
- 最坏情况时间窗口
Installation
- GitHub:
- PyPI:
How to diagnose “slow feeling”
如果用户说你的系统感觉慢:
- 不要看平均值
- 检查 p99
- 查看方差
- 寻找随时间的峰值
这通常就是事实所在。