HTTP保持活动,每1秒钟进行<1KB的呼叫

时间:2011-06-16 00:14:34

标签: asp.net http iis keep-alive

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

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

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

因此,有了这些约束 - 你会认为在服务器上禁用HTTP Keep-Alive是个好主意吗?那会改善服务器可以处理的并发用户数吗?

(顺便说一句,我在IIS 7.5设置中将KeepAliveTimeout / ConnectionTimeout减少到15秒)

1 个答案:

答案 0 :(得分:1)

根据您的描述,您每个客户每秒拨打一个电话。所有这一切归结为服务请求所需的费用。如果让我们说,服务请求需要100毫秒。所以这意味着15秒的Http Keep-Alive将有15个呼叫,无需重新建立连接,但连接实际上是活动的(或正在使用)仅1.5秒 - 其余的时间,你实际上阻止了一些客户端/连接(假设有任何客户端)。没有活着,你可以容纳8到9倍的并发客户端。

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

顺便说一句,也可以在SO上看到这个相关的问题:http keep-alive in the modern age