我的环境:Windows Server 2008,IIE 7.0,ASP.NET
我开发了一个Silverlight客户端。 此客户端通过WCF Web服务从ASP.NET主机获取更新。
当用户数量非常少时(~50),我们可以获得100%的CPU使用率和连接数。 服务器显然应该能够处理更多的事情。
我在DEV服务器上运行了一些测试,实际上100个请求/ s最大化了CPU。 奇怪的是,即使服务被虚拟发送回硬编码数据取代,服务仍然会最大化CPU。 线程数看起来非常低,大约20,所以我认为某处有一些争论。
我更改了我可以找到的所有配置选项,以增加工作线程(processModel
,httpRuntime
和MaxRequestsPerCPU
注册表项。
什么都没有改变。
然后我停止了IIS服务器并将Web服务作为控制台运行(删除所有ASP身份验证引用)。 该服务也最大化了CPU。
然后是神奇的部分:我杀了控制台应用程序并重新启动IIS,现在该服务运行5-60%CPU,100个请求/秒,我可以看到50多个工作线程。 我在我们的preprod机器上做了同样的事情并且具有相同的魔法效果。 重新启动机器可以保持良好的行为。
所以我的问题是:修复我的IIS服务器发生了什么?我真的无法理解修复它的原因。
干杯。