Tcp 在建立时间连接之前,评估/诊断时间连接是否在SYN_RECV中

Tcp 在建立时间连接之前,评估/诊断时间连接是否在SYN_RECV中,tcp,Tcp,我正在尝试使用相当标准的CentOS/Apache设置来提高(虚拟)web服务器的性能,我注意到的一件事是,新连接似乎“粘住”在SYN_RECV状态下,有时会持续几秒钟,最后由Apache建立和处理 我的第一个猜测是,Apache可能会达到它准备同时处理的连接数的限制,但例如,在保持活动关闭的情况下,netstat正在报告一些已建立的连接(仅限于那些不涉及本地主机的连接,因此丢弃“内务管理”连接,例如Apache和Tomcat之间的连接),而使用keep alive,它将很高兴地获得100多个已

我正在尝试使用相当标准的CentOS/Apache设置来提高(虚拟)web服务器的性能,我注意到的一件事是,新连接似乎“粘住”在SYN_RECV状态下,有时会持续几秒钟,最后由Apache建立和处理

我的第一个猜测是,Apache可能会达到它准备同时处理的连接数的限制,但例如,在保持活动关闭的情况下,netstat正在报告一些已建立的连接(仅限于那些不涉及本地主机的连接,因此丢弃“内务管理”连接,例如Apache和Tomcat之间的连接),而使用keep alive,它将很高兴地获得100多个已建立的连接(但无论哪种方式,SYN_RECV的行为都没有明显区别——SYN_RECV中通常有10-20个连接在任何时间)

对于调查阻碍快速建立连接的瓶颈在哪里,人们有什么建议

还有一个问题:有人知道一次“点击”服务器建立连接的时间的典型统计数据是多少吗


如果其他人遇到此问题,请更新:最后,我编写了一个小型Java程序,从/proc/net/tcp获取数据并进行分析,似乎这种情况只发生在一小部分连接上(尽管这仍然意味着在任何时候都可能有许多连接处于这种状态,因为它们可以以这种方式保持数秒)并且看起来像是这些连接的本地问题。90%以上的连接仍在<500毫秒内通过,81%在<200毫秒内通过。因此,如果其他连接出现这种情况,则不必立即惊慌。

尝试捕获数据包跟踪,查看是否正在重新传输SYN ACK(以及重新发送的次数)。这可能表明存在路由问题(SYN通过路径A进入,SYN-ACK通过断开的路径B进入)

还要查看这些连接是否具有特定的模式(例如来自同一网络)