2011-06-16 43 views
3

我正在优化我的Web服务器设置以处理大量的并发用户,我遇到的问题之一是决定是否禁用HTTP Keep-Alive。HTTP Keep-Alive每1秒呼叫<1KB

我为网站上的所有图像使用CDN,所以当我的HTML页面被请求时,我在第一次加载时下载了大约5个文件(js,css等),然后在每个连续的加载中只有HTML。

除此之外,我唯一拥有的是每秒调用一次HTTP POST更新(结果JSON通常小于1KB)。

所以,有了这些限制 - 你会认为在服务器上禁用HTTP Keep-Alive会是一个好主意吗?这会改善服务器可以处理的并发用户数量吗?

(顺便说一下,我已经减少的KeepAliveTimeout/ConnectionTimeout在IIS 7.5设置为15秒)

回答

1

从你所描述,你这是每个客户端每秒的呼叫。所有这一切都归结为服务请求需要多少时间。如果我们说,服务请求需要100ms。那么这意味着15秒的Http Keep-Alive将会有15个呼叫被调用,而不是重新建立连接,但是连接只是实际活动(或正在使用)1.5秒 - 其余时间,实际上阻止了一些客户端/连接(假设有客户端)。 W/o保持活着,你可能容纳8-9倍的并发客户端。

然而,所有的说法,你必须看实际的参数做出决定。您可能拥有多少个并发客户端以及响应时间是多少等等。最好的方法是进行模拟/负载测试来衡量性能。因为如果你的服务器要处理预期的最大并发用户负载保持活着,你可以保持活着。

BTW,也看到此相关的问题上SO:http keep-alive in the modern age

+0

呼叫的处理几乎是瞬间(所以连接空闲大约950ms)。由于并发客户端的数量非常重要,我决定尝试使用Keep-Alive = disabled。我希望通过这种方式,我可以像你说的那样容纳更多的并发客户端。将基于它的工作原理更新问题。 – kape123 2011-06-17 03:44:16