对于高流量的 Web 应用程序,最好在 IIS 7 中禁用 Keep-Alive 吗?

对于高流量的 Web 应用程序,最好在 IIS 7 中禁用 Keep-Alive 吗?

以下建议适用于 Apache,但似乎足够通用,无论什么系统都可以应用。我的架构是负载平衡器后面的 3 个 Web 服务器。我的 IIS 服务器目前已启用保持活动,默认连接超时为 2 分钟。禁用我的网站的保持活动是否会提高性能和吞吐量?

首先,禁用 keep-alive。这是对性能影响最大的问题。它设计时,站点正在运行 NCSA httpd,每次请求时都会从 inetd 中分叉。所有这些分叉都在杀死服务器,而 keep-alive 是解决这个问题的巧妙方法。...
如果
keep-alive 时间太短,无法维持两次点击之间的会话,则它毫无用处。如果它足够长,则意味着服务器将需要为每个同时用户提供大约一个进程,这还不包括大多数浏览器通常建立 4 个同时会话的事实!简而言之,使用类似 Apache 的服务器运行 keep-alive 的站点不可能同时为几百个以上的用户提供服务。

http://1wt.eu/articles/2006_lb/index_10.html

答案1

Keepalive 对于每个页面请求分发多个/许多资源的服务器来说非常方便。如果您的服务器托管 html、css、js、图像等,Keepalive 将允许每个连接下载多个文件。建立 tcp 连接并提高速度需要一些时间。

但是,如果您仅托管单一资源,并且任何依赖资源都是从 cdn 中提取的或不存在,则禁用 keepalive 可以让服务器和负载均衡器更快地关闭连接。

相关内容