我的ASP.net网站有时会经历相当长的一段时间。
我需要帮助才能理解它为什么会发生以及是否可以通过更改某些IIS设置来解决问题。 站点在IIS 7.5 Window 7 x64上托管。
我从性能监视器中收集了一些信息:
当负载很高且匿名用户数达到10(哪个接缝是Windows 7的限制)时,站点停止响应客户端请求约1.5分钟。在停机期间打开的连接数量不断增长。在某些时候,服务器突然变为活动状态并响应所有待处理的请求。 CPU使用率不超过50%并且有足够的可用内存。试图在另一台没有成功的计算机上重现这种情况。
您是否了解此类IIS停机的原因?
UPD
我修补了Windows,现在它允许有超过10个连接,但问题仍然存在。在挂起期间,即使对静态html页面的简单获取请求也不起作用,因此它似乎与IIS有关,而与应用程序行为无关。
答案 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>