延迟分解与归因

把端到端延迟拆成排队、计算、网络与下游等待各段:按段测量(追踪、指标、日志)定位主要贡献者,避免在非瓶颈环节投入优化。

分段网关排队、应用计算、序列化、网络往返、数据库与下游
手段分布式追踪逐段计时;线程池与连接池等待单独统计
归因先看占比与分位,再决定优化对象

分解表示例(单请求)

分解表示例(单请求)
网关排队      12ms
线程池等待     8ms
业务计算      35ms
序列化与网络    9ms
数据库查询    45ms(其中锁等待 15ms)
下游 RPC     60ms
合计     169ms(对应 P99 249ms)

先处理占比高且可优化的段,如锁等待与下游 RPC
  • 排队等待(线程池、连接池、队列)要单独埋点,避免混入业务耗时
  • 按分位而非均值分解,关注 P99 的主要贡献段
排队等待常被计入应用耗时:池等待与调度延迟要单独埋点,否则优化方向会被误导。

易错点

  • 把所有耗时归入应用逻辑,忽略池等待
  • 未按分位分解,均值达标掩盖长尾段

数据来源与参考

  • 《性能之巅(第 2 版)》(Gregg)
  • Google SRE Book:Monitoring(延迟分解)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌