一个奇怪的网络问题

现象:系统虚拟化之后,系统出现一个问题,在有些虚拟机上调用接口1s之内可以完成,在有些虚拟机上需要等待20s才能完成。
诊断过程:
1.在代码里面打印出接口的每一行代码的耗时,发现在调用远程接口等待了20s。
2.在慢的虚拟机上tcpdump抓包发现,接口在四次挥手的时候出现了TCP连接被RST重启,重启之后tcp停顿20s再重新发送请求。
3.比对快的虚拟机和慢的虚拟机的网络的参数,发现并没有异常。
4.tcp协议的实现在操作系统内核中,不同的网段还有防火墙,接下来朝两个方向验证,一是把快的虚拟机重新克隆一份替换慢的。 二是检查慢机器的IP和快机器的IP的网络策略是否相同。
5.在验证期间保证用户体验,通过F5把接口都转发到快的机器上。
6.最后克隆了一份快的虚拟机验证OK了。

你可能感兴趣的:(互联网技术)