【发布时间】:2011-10-06 10:34:50
【问题描述】:
我正在尝试使用相当标准的 CentOS/Apache 设置来提高(虚拟)Web 服务器的性能,我注意到的一件事是新连接似乎“粘”在 SYN_RECV 状态,有时会持续几秒钟,在最终被 Apache 建立和处理之前。
我的第一个猜测是 Apache 可能会达到它准备同时处理的连接数的限制,但是例如关闭 keep-alive netstat 报告了一些已建立的连接(只是那些不涉及 localhost 的连接,因此丢弃了“家务”连接,例如 Apache 和 Tomcat 之间的连接),而启用 keep-alive 时,它会很高兴地获得多达 100 多个已建立的连接(但是无论哪种方式,SYN_RECV 行为都没有明显区别——通常在任何时候都有 10-20 个连接位于 SYN_RECV 中)。
人们对于调查阻碍快速建立连接的瓶颈有哪些建议?
附:后续问题:有人知道第一次“命中”服务器后建立连接的时间的典型统计数据是什么吗?
更新以防其他人遇到这种情况: 最后,我编写了一个小型 Java 程序来从 /proc/net/tcp 获取数据并进行分析,看来这发生在一个小程序中连接的比例(尽管这仍然意味着在任何时候都可能有许多连接处于这种状态,因为它们可以保持这种状态数秒)并且看起来像是这些连接的本地问题。超过 90% 的连接仍然在
【问题讨论】:
标签: tcp