知识卡片

用百分位而非平均值衡量延迟

普通读书笔记卡 · 1565.a

内容

延迟类指标不该只看算术平均值,它会掩盖”大部分请求快、少数请求极慢”的长尾问题——常见请求50ms 完成,但5%的请求慢了20倍,均值曲线却毫无异常。应看分布的高百分位(如99%、99.9%),它反映最差 情况;高百分位健康,中位数几乎必然也健康,反之不然。发散:计算机延迟天然右偏(下限为0,可能 有超时上限),不能假设均值约等于中位数,按均值做自动化决策容易频繁误判。

参考来源

- 位置:《SRE:Google运维解密》第4章《服务质量目标》(源文件:_epub-src/OEBPS/Text/0008_0002.xhtml) - 结论依据:原文用图4-1的例子说明"虽然常见请求可以在50ms完成,但5%的请求却慢了20倍",并指出针对平均值的监控发现不了这种变化,进而论证应使用百分位而非平均值来体现分布的最差情况。 - 原始内容:"虽然常见请求可以在50ms完成,但5%的请求却慢了20倍!针对平均值的监控和报警将不会发现任何改变,但是服务的确在长尾延迟上出现了巨大变化……高百分位,例如99%和99.9%体现了指标的最差情况,而50%则体现了普遍情况……如果99.9%的系统行为都正常的话,那50%部分就肯定也是正常的。"