1.代码模拟
定义模拟接口,2s返回结果
定义请求,并设置超时时间为100毫秒
2.启动服务并调用接口,服务器查询状态,服务端口18081
执行命令
netstat -an|grep 18081|grep CLOSE_WAIT
如上图发现已有CLOSE_WAIT状态
3.liunx服务器安装tcpdump,对10.0.8.13的18081抓包并输入到文件
执行命令
tcpdump -i eth0 host 10.0.8.13 and port 18081 -w test.cap
注意保在抓包时调用接口 将文件test.cap下载到本地,用Wireshark打开进行分析
红色部分代表服务器询问客户端,客户端失联,不能正常关闭TCP,导致close_wait; 右键一条进行追踪
根据接口信息排查具体原因,发现超时时间设置太短导致close_wait.