将服务作为控制台运行一次时,不会发生ASP.NET高CPU负载?

时间:2011-01-21 09:34:01

标签: asp.net iis-7 high-load web-worker

我的环境:Windows Server 2008,IIE 7.0,ASP.NET

我开发了一个Silverlight客户端。 此客户端通过WCF Web服务从ASP.NET主机获取更新。

当用户数量非常少时(~50),我们可以获得100%的CPU使用率和连接数。 服务器显然应该能够处理更多的事情。

我在DEV服务器上运行了一些测试,实际上100个请求/ s最大化了CPU。 奇怪的是,即使服务被虚拟发送回硬编码数据取代,服务仍然会最大化CPU。 线程数看起来非常低,大约20,所以我认为某处有一些争论。

我更改了我可以找到的所有配置选项,以增加工作线程(processModelhttpRuntimeMaxRequestsPerCPU注册表项。 什么都没有改变。

然后我停止了IIS服务器并将Web服务作为控制台运行(删除所有ASP身份验证引用)。 该服务也最大化了CPU。

然后是神奇的部分:我杀了控制台应用程序并重新启动IIS,现在该服务运行5-60%CPU,100个请求/秒,我可以看到50多个工作线程。 我在我们的preprod机器上做了同样的事情并且具有相同的魔法效果。 重新启动机器可以保持良好的行为。

所以我的问题是:修复我的IIS服务器发生了什么?我真的无法理解修复它的原因。

干杯。

1 个答案:

答案 0 :(得分:1)

找出高CPU使用率的根本原因,然后找到修复程序

http://support.microsoft.com/kb/919791