将服务作为控制台运行一次时不会出现 ASP.NET 高 CPU 负载吗?

发布于 2024-10-13 14:21:22 字数 720 浏览 11 评论 0原文

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

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

当我们的用户数量非常少(~50)时,我们的 CPU 使用率为 100%,并且连接会丢失。 服务器显然应该能够处理更多的事情。

我在我们的 DEV 服务器上运行了一些测试,确实每秒 100 个请求就耗尽了 CPU 资源。 奇怪的是,即使该服务被替换为发送回硬编码数据的虚拟服务,该服务仍然会耗尽 CPU 资源。 线程数看起来非常低,大约为 20,所以我认为某个地方存在一些争用。

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

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

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

所以我的问题是:修复我的 IIS 服务器发生了什么?我真的不明白是什么解决了它。

干杯。

My environment: Windows Server 2008, IIE 7.0, ASP.NET

I developed a Silverlight client.
This client gets updates from the ASP.NET host through a WCF web service.

We get 100% CPU usage and connection drops when we have a very low number of users (~50).
The server should clearly be able to handle a lot more than that.

I ran some tests on our DEV server and indeed 100 requests / s maxes out the CPU.
What's odd is that even if the service is replaced by a dummy sending back hardcoded data the service still maxes out the CPU.
The thread count looked very low at about 20 so I thought there was some contention somewhere.

I changed all configuration options I could find to increase the worker threads (processModel, httpRuntime and the MaxRequestsPerCPU registry entry).
Nothing changed.

Then I stopped the IIS server and ran the web service as a console (removing all the ASP authentication references).
The service maxed out the CPU as well.

Then comes the magic part: I killed the console app and restarted IIS and now the service runs a 5-60% CPU with 100 requests / s and I can see 50+ worker threads.
I did the same thing on our preprod machine and had the same magic effect.
Rebooting the machines keeps the good behaviour.

So my question is: what happened to fix my IIS server? I really can't understand what fixed it.

Cheers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黯淡〆 2024-10-20 14:21:22

找出 CPU 使用率高的根本原因,然后您可以找到修复方法,

http://support。微软.com/kb/919791

Find out the root cause of the high CPU usage, and then you can find a fix,

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文