Sab*_*bly 13 asp.net iis-7 http
我有一个通过IIS 7.0部署的Web应用程序.大量用户可以访问该应用程序并操纵大数据..我的问题与HTTP Keep-Alive选项有关,默认情况下设置为true.
将HTTP Keep-Alive设置为false或true是一种更好的方法.
如果是真的是使用超时的好方法?
KeepAlive通常应该用于处理紧跟 HTML请求的请求.让我们说在第一次访问你的网站时,我得到一个包含5个css,5js和25个图像的HTML页面,我将使用我仍然活着的HTTP连接来请求这些东西(好吧,取决于浏览器,我可能会使用3连接加速这些事情).
为了处理这个事实,我们通常使用2s或3s的Keepalive .拥有更长的keepalive意味着连接正在等待用户可能请求的下一页.这可能是一种有效的思维方式,下次用户想要一个页面时,我们将避免浪费时间建立HTTP连接(这可能是请求/响应时间中最长的部分).但是对于你的服务器来说,服务器处理的大部分HTTP连接都在做什么......没什么.并且您将达到您的MaxConnection(W3SVC/MaxConnections,其荒谬默认为10),连接无效.特别糟糕.如此长的keep-alive需要大型Web服务器,并且只有在您的应用程序真正需要它时才应该使用它.
如果您在"经典网站"中使用Keepalive,则必须更改连接超时(默认为2分钟).在Apache中,您将有2个设置,一个keepalive tiemout(默认为5秒)和一个连接超时(2分钟).在IIS中,似乎超时设置用于两者.所以不要把它设置为2s(客户端发送请求的时间会非常慢),但10s之类的东西就足够了.现在一个响应是禁止Keep-Alive,并使浏览器打开更多连接.另一个响应是使用现代网络服务器(例如nginx或cherokee),它以比Apache或IIS更优雅和无资源的方式处理保持连接.
即使您不使用Keepalive,等待客户端超时2分钟的原因是什么?它确实太高了,把这个值减少到像60s那样.
然后你应该检查几个与超时相关的设置(ConnectionTimeout,HeaderWaitTimeout,MinFileBytesPerSec)以及对注册表中性能设置的这个很好的响应.
归档时间: |
|
查看次数: |
10040 次 |
最近记录: |