问题如下:
目前能想到的工具有:
- netstat -antp
- lsof -i:port
- sar -n SOCK 查看tcp创建的连接数
- tcpdump
由于是 本地回环接口上出现这个情况,认为排除网络抖动情况,ping lo 接口 网络延时稳定;
ifconfig 接口没有丢包;
查看 somaxconn tcp_max_syn_backlog backlog 其值都是大约10024
出现 syn_sent 的时候 cpu 空闲95% mem 都是正常的
本地回环 出现这个问题 怎么处理??
-------------------------------------------------------------下班----------------------------------------------
继续看:
使用perf 结果:
对了 使用perf trace 也是 跟踪系统调用 可以对比 strace 看看
目前使用工具没有看到丢包情况!!! 只能根据函数调用关系走读代码了!!
走读代码发现: 本机上进程间通信使用tcp 没有使用unix域; 同时 ip层处理报文时及时是到lo 接口的报文也会走 相关hook函数;
分析hook函数,发现其可能丢包;
将此时的代码逻辑修改为: 目的地址为127.0.0.1 等lo IP 报文就走原有的Tcp/Ip 协议栈,
目前
修改后测试正常: