使用 EC2 上由 node.js 驱动的服务器,如何减少 TCP 连接时间?

使用 EC2 上由 node.js 驱动的服务器,如何减少 TCP 连接时间?

在分析我的应用程序时,我注意到在 Firebug Net 面板中,“连接”时间(即等待 TCP 连接的时间)始终约为 70-100 毫秒。参见下图:

firebug net面板tcp连接时间

当然,从总体上看,100 毫秒并不算长,但我见过其他服务以 0 毫秒连接时间响应。所以如果其他服务器可以,我也应该可以。

关于如何开始解决这个问题,我有什么想法吗?

答案1

从 Web 服务器的角度来说,并且稍微使用过 firebug。

我之前见过你提到的 0ms,但是我认为它与 KeepAlives (在 Apache 和其他系统中)更相关。其理念是,你向 Web 服务器发出初始请求,如果允许并打开保持活动,则在 Web 服务器处理完该请求后,连接不会立即关闭,而是保持活动一段时间,直到达到 KeepAlive 中设置的超时时间,这意味着可以在连接仍建立的情况下向同一 Web 服务器和域请求网页上的其他元素,从而避免客户端不得不重新连接。

它有优点也有缺点,虽然它很好,因为它可以稍微提高速度,但它可能会对非常繁忙的应用程序产生影响,因为如此多的请求进入应用程序并等待超时,最终可能会耗尽连接数。

这一切都是在 Web 服务器环境中进行的,但我不明白为什么节点应用程序无法实现相同的功能。但是,如果您能够看到尚未打开和建立的连接的连接时间为 0ms,我会感到惊讶,因为对于 TCP 连接,有几个数据包必须通过 SYN、SYN-ACK 和 ACK 来回传输,而远程服务器上的所有这些操作都将花费超过 0ms 的时间。

我确信这里有人对节点方面有更好的想法,但我确信这仍然有用且相关。

干杯,M

相关内容