首页/网络/抓包与流量分析速查/服务端处理时间提取
丢包与时延定位60 条

服务端处理时间提取

在服务端抓包:请求首包到达与响应首包发出之间的差即服务端占用;无服务端抓包时用应用日志时间戳替代并把口径写清楚。

服务端耗时怎么取

在服务端抓包时,请求末字节到达与响应首字节发出之间的时间差,就是服务端自身占用的处理时间。这个口径的价值在于把网络传输彻底排除在外,得到的是应用真正花掉的时间。没有服务端抓包点时只能用应用日志的时间戳替代,但必须把口径写清楚——日志时间戳的精度往往只有毫秒甚至秒级,与抓包的微秒级精度不在一个量级。另外要记住这段时间里包含了排队等待线程、等锁、等下游依赖,并不全是计算时间。

基本信息

计算口径服务端响应首字节发出减去请求末字节收到
抓包位置服务端主机或容器网络接口
替代方案应用日志时间戳,须注明精度
包含内容计算、排队、等锁、等待下游
常见误区用客户端总耗时代表服务端处理时间

典型使用场景

  • 服务端性能评估:得到剥离网络后的真实处理耗时
  • 与应用日志对齐:交叉验证两套耗时口径是否一致
  • 拆分排查:确认时间花在计算还是排队等待上
  • 变更前后对比:优化上线后确认处理时间是否下降
  • 责任划分:向业务方解释服务端与网络各占多少

口径与取数

口径与取数
# 在服务端抓包,取两个时刻相减
# 请求末字节到达的时刻
# 响应首字节发出的时刻
# 两者之差即服务端处理时间
# 客户端侧只能得到两段合计,无法拆分

耗时口径对照

口径取值范围精度与限制
客户端总耗时服务端处理加双向网络受网络影响大
服务端处理时间仅服务端占用需要服务端侧抓包
应用日志耗时取决于打点位置精度通常低于抓包
服务端处理时间包含排队等待(等线程、等锁、等下游响应),把它整体称为计算时间会误导后续的优化方向。
日志时间戳精度不足时只能做粗定位,要精确拆分服务端与网络的占比必须依赖抓包数据。

易错点

  • 把客户端侧总耗时直接说成服务端慢是最常见的误判,必须用服务端侧数据把网络部分剥离出来
  • 日志时间戳精度不足时用它做毫秒级结论不可靠,只能做粗定位并在报告里注明局限
  • 服务端处理时间包含排队与等待下游,误当成纯计算时间会让优化方向跑偏
  • 抓包点选在容器外部时可能把宿主网络栈的处理也算进去,口径必须在报告中写明

数据来源与参考

  • Wireshark User's Guide
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌