尾延迟与长尾效应

请求延迟分布呈长尾:单服务 P99 叠加到扇出调用后,端到端 P99 被放大;降低尾延迟靠并行化、请求对冲、超时预算与慢节点摘除等手段。

成因GC、锁竞争、慢节点、队列排队、重试放大
放大单请求扇出 N 个下游,尾概率近似 1-(1-p)^N
手段并行调用、对冲请求、超时与重试预算、节点摘除

扇出放大粗算

扇出放大粗算
单下游慢请求概率 p=1%
扇出 N=10:端到端至少一个慢的概率 ≈ 1-(1-p)^N ≈ 9.6%
扇出 N=50:≈ 39.5%

对策顺序:先并行化,再对冲,最后才考虑重试;
重试要设限并错开时机,避免连锁放大下游负载
P99 改善常来自消除长尾源:先定位是排队、GC 还是慢依赖,再选择手段。

易错点

  • 只看均值优化,P99 用户持续差评
  • 串行扇出调用未并行化,端到端延迟叠加

数据来源与参考

  • Jeff Dean《The Tail at Scale》(CACM, 2013)
  • 《性能之巅(第 2 版)》(Gregg)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌