我们的服务器遭遇了严重的连接超时问题,所以我们用tcptrack跟踪tcp连接
我们发现,如果客户端开始连接到服务器,tcptrack会显示连接,但是在SYN_SENT状态下, netstat -nat
什么也不显示。 (tcptrack&netstat全部在服务器上运行)
我做了一个使用ab
在同一个内部网,到指定的网卡,它处理了10000个并发连接和400000个请求确定的长凳testing
ps:这不是每次都会发生,但确实发生了很多
PPS:有没有什么好的工具来跟踪tcp连接丢失的地方?
这意味着SYN是由客户端发送的,或者没有到达服务器,服务器没有回复,或者服务器select回复而不跟踪它。 服务器不需要跟踪它发送的每个SYN应答(并且可以使用SYN cookie ),因为它们可能被欺骗,并且这样做会造成拒绝服务攻击的风险。
当我收到'不想要的'stream量时,就像在被IPTABLES规则明确阻塞的stream量(如DROPPOP)中一样,tcptrack显示input的IP地址以及SYN_SENT状态(连同连接时间和数据速率0B /秒)。 该清单在那里停留几秒钟,直到它清除。
所以 – 有可能因为某些原因,你所看到的连接被阻塞。 由于IPTABLES DROPs,可以locking由SYN_SENT提供的IP地址。 你可以禁用IPTABLES一下,看看它是否继续。 如果是这样,请确保被阻止的地址应该是。