宽带出现服务器响应超时,客户端请求服务端莫名出现超时

背景:

客户端请求服务端域名,进行查询操作,偶尔出现200ms+延迟,且对于该请求服务端执行速度4ms左右,此问题非常诡异,决定对此进行研究. 下面记录下当时详细的定位&解决流程

问题定位:

1、分析代码

服务端系统是一个常见的spring-boot web工程,使用了集成的tomcat。分析了代码之后,发现并没有特殊的地方,没有特殊的过滤器或者拦截器,所以初步排除业务代码问题.

2、确定调用链路

bVcTEJI

3、问题排查分析

3.1、网络层问题,抓包 (20210701)

确定耗时位置是 客户端调用F5,还是 F5 调用 服务端 ?

3.1.1 服务端ack出现大量 RST

bVcTEJK

通过跟踪RST的HTTP 流 发现:在FIN最后一次关闭之后 , 服务端向客户端发送了 FIN 关闭连接的请求,然后服务端又向客户端发了报文导致RST. 抓包如下:

bVcTEJR

怀疑是连接不能复用导致的建联耗时,经排查代码发现,客户端未使用连接池,因此 客户端增加HTTP 连接池来解决此类问题 .

3.1.2 网络耗时长,抓包

经过2.1.1 的优化之后,还是存在调用超时的现象,现在我们通过wireshark 抓包观察,发现客户端与F5之间无超时情况,客户端发出请求后,随机收到了F5的ACK;F5 发出请求后,间隔40ms 收到服务端的ack , 此处就引出了另外一个问题,就是 TCP 神奇的40 ms (https://cloud.tencent.com/dev... 大家可以自行去备注的链接去研读,这里篇幅时间有限,不在进行赘述 .

3.2、网络层无波动,考虑应用层

开始考虑服务端 socket 连接 和 服务端容器方向

3.2.1. 服务器socket连接

跳过F5 负载,直接使用IP:port 的方式请求服务端(20210713)

20210714 观察日志:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值