Skip to content

Latest commit

 

History

History
19 lines (11 loc) · 1.87 KB

File metadata and controls

19 lines (11 loc) · 1.87 KB

Tail Latency Might Matter More Than You Think - Marc's Blog

TL;DR

现代微服务与SoA架构中,尾部延迟(如1%高延迟)因调用复杂性被放大。并行调用下总延迟由最慢服务决定,10个服务各1%的100ms尾延迟会推高整体延迟至10%;串行链延迟则随链条增长显著累积,方差增大25倍。单纯监控99.9%分位数或截断统计易忽视尾部影响,需结合更高分位数及端到端指标,作者建议优先观察均值并辅以直方图等数据全面评估延迟问题。

Summary

尾部延迟(高百分位延迟)指用户偶尔经历的高延迟现象,如大部分请求在10ms左右完成,但约1%会延迟到100ms。这类延迟虽发生频率低,但可能因现代架构(如微服务、SoA)的复杂调用模式而显著放大其影响。

文章通过数值实验分析了系统架构中两种常见模式对尾延迟的影响:

  • 并行调用:前端同时调用多个服务并等待全部完成,延迟由最慢的服务决定。若每个服务有1%的100ms尾延迟,当调用数量N为10时,整体尾延迟发生率将升至约10%(即原本稀少的高延迟可能成为常态)。
  • 串行链:服务按链式调用,总延迟等于各环节的累加。若链条长度N增加,尾延迟的累积将使最终延迟的方差增加25倍,显著改变整体分布形态,即使原单个服务仅有少量慢请求。

监控系统性能时,单纯依赖99.9%等分位数或截断统计值(如trimmed means)存在局限。尾延迟可能因系统调用模式成为主导因素,需关注更高分位数,并通过端到端场景监测用户体验。作者指出,若仅选一个指标,均值(mean)更优于其他分位数——但实际应结合多统计量(如直方图、趋势图)以全面评估。