当匿名用户数达到10时,IIS挂起

时间:2014-01-02 13:20:34

标签: asp.net performance wcf iis

我的ASP.net网站有时会经历相当长的一段时间。

我需要帮助才能理解它为什么会发生以及是否可以通过更改某些IIS设置来解决问题。 站点在IIS 7.5 Window 7 x64上托管。

我从性能监视器中收集了一些信息: enter image description here

当负载很高且匿名用户数达到10(哪个接缝是Windows 7的限制)时,站点停止响应客户端请求约1.5分钟。在停机期间打开的连接数量不断增长。在某些时候,服务器突然变为活动状态并响应所有待处理的请求。 CPU使用率不超过50%并且有足够的可用内存。试图在另一台没有成功的计算机上重现这种情况。

您是否了解此类IIS停机的原因?

UPD

我修补了Windows,现在它允许有超过10个连接,但问题仍然存在。在挂起期间,即使对静态html页面的简单获取请求也不起作用,因此它似乎与IIS有关,而与应用程序行为无关。

1 个答案:

答案 0 :(得分:5)

请参阅IIS limits imposed by Operating System version

Windows 7 (IIS v7.5)2  
Starter:        No IIS  
Home Basic:     No IIS  
Home Premium:   simultaneous request execution limit of 3, allows multiple sites  
Business:       simultaneous request execution limit of 10, allows multiple sites  
Enterprise:     simultaneous request execution limit of 10, allows multiple sites  
Ultimate:       simultaneous request execution limit of 10, allows multiple sites  

另外Windows Vista/7 IIS Concurrent Connection Limits

  

IIS 7现在不会阻止HTTP连接超过IIS 6中限制的最大连接数,而是将任何新请求排队,同时允许有限数量的并发连接。

如果要处理超过10个与IIS的并发连接,则需要使用服务器操作系统 - 这些对并发连接数没有限制。

那就是说,它本身并不能解释为什么Requests / Sec为0(IIS仍然应该处理请求,同时不超过10个)。我的猜测是你的ASP.Net应用程序有某种问题导致它停止处理请求(例如数据库锁)。结果是越来越多的连接排队,直到所有10个当前连接都停留在同一个东西上,并且服务器完全停止处理请求 - 简而言之,并发连接似乎是一种症状,而不是原始原因。 / p>