wireshark-记一次客户端请求发出延迟造成应用访问延迟问题

文章讲述了客户应用因批量数据操作导致服务器响应延迟,开发误将问题归咎于网络。通过常规故障排查和深入TCP分析,发现问题实际出在程序开始时间与TCP发起时间不一致,从而快速定位并解决了问题,避免了长时间的误解和延误。

一、现象描述

某客户客户端—服务器,请求端的应用日志显示延迟十几秒,因为批量刷数据,造成整个数据流的阻塞和报错,应用日志报错如下:
在这里插入图片描述
如图所示,请求端的日志显示数据请求延迟了十几秒,因为log很多,随机截了一个log。
但是在网络情况时候,其实网络质量是非常好的。通过科来的会话统计信息,如下:
在这里插入图片描述
看到那段时间没有一个会话超过1s的。
但是开发找不出问题,只能甩给网络问题了。

二、故障分析

首先按照我们套路,收集常规信息,源、目的、时间,请求链路。
请求链路:PC–F5–Ingress–Pod
其实在这之前通过科来回溯数据就已经说明问题不在网络了,但是开发还是甩,后来开发找了k8s运维,直接用Node Port方式暴露业务,pc直接用ip+port方式,还是出问题了,这时候其实有开发意识到是程序问题了,but,还需要继续的证据,开启大招,只能在客户端一直抓数据了。

根据业务log的时间、源、目的、唯一值,在客户端和服务端同事抓数据;
在这里插入图片描述

如上图所示,根据前面给的log,对照服务器和客户端抓的数据包,过滤唯一值,定位出延迟问题不在网络端,这个故障告诉我们,程序的开始时间,并不代表tcp发起时间。但是开发会理所当然认为log是没问题的。至此,问题点已经确认,
整个过程虽然网络层面一直背锅。但是还是通过tcp层面的分析快速定位问题点,避免问题一直存在而毫无进展。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值