日期:2014-05-16  浏览次数:21539 次

IIS卡死的问题
服务器环境: win2003 +IIS6.0 +asp.net2.0
是用ASP.NET开发的系统,当在线用户达到30至50时,客户端连接服务器就会特别慢,几乎是卡死了。
网站使用了单独的应用程序池,默认设置,每天会回收两次。
我的程序的每个用户都会有个长连接,就是会把客户的一个连接的线程给暂停掉Thread.Sleep(5000),过一段时间在继续。
但是奇怪的是这时候如果在服务器本地登陆系统,速度还是很快,不受影响。客户端却很慢。在线用户少时没有这个现象。
所以现在就搞不明白是网络的问题还是系统的问题。
可能是什么原因引起的?怎样解决?

------解决方案--------------------
侦听一下带宽的使用情况
------解决方案--------------------
我觉得可能是这种情况:每个w3wp进程可开的线程数量是有限的,而默认情况下,应用程序池的web garden功能是关闭的。这样就只会有1个w3wp进程,总线程数就有限了。当请求的数量超过总线程数时,由于使用了长连接,就会出现卡死的情况。
ASP.NET里可以修改web.config来增加每个w3wp进程可以同时处理的请求数(线程数)。
另外,也可以在应用程序池的属性里打开web garden的功能,也就是把maximum number of worker processes从1改成你所需要的数字。