asp.net - 如何增加 IIS 进程优先级(对于 w3wp 和 iis apppool)?

标签 asp.net iis iis-7 remoting

有一个带有一组 Web 服务的 ASP.NET 应用程序,还有一个调用这些 Web 服务的 WinForms 应用程序。

w3wp.exe(处理 asmx 调用)运行特殊的进程来执行真正“困难”的工作(如压缩、xml 解析等)。这是一个很长的故事,为什么我们需要它在单独的进程中完成,为什么我们不在 w3wp.exe 中运行这段代码 - 这在这里无关紧要。一定是这样的。

如果多个用户同时发出多个请求,则可能有 30-40 个这样的进程,它们会消耗 CPU。他们消耗太多,几乎没有 CPU 资源留给 IIS 本身。

因此,接下来的问题是:当以下 HTTP 请求到达此 IIS 时,IIS 无法处理它们:它甚至无法将它们传递给 w3wp.exe,因为服务器被“轰炸”了。 并且,因此,在高峰时间有 30 个用户运行了他们的查询,第 31 个用户在 WinForms 客户端“超时已过期”中收到 WebException。

我在互联网上找到了很多解释如何调整 IIS 的文章,但没有人考虑到其他进程和/或应用程序可以在同一台机器上运行这一事实。并且没有人告诉您如何使 IIS 具有更高的优先级。

那么,接下来的问题是:是否有一种方法可以“解释”IIS,它应该默认以更高的优先级启动 apppool (svchost.exe) 和 w3wp.exe?

最佳答案

我在 Windows Server 2008 r2 中遇到过这个问题。 我有一个 Windows 服务(使用并行处理),它曾经使我的 CPU 膨胀很多并且没有为 IIS 和 SQL Server 留下任何东西。

所以我将 处理器亲和性 设置为 windows 服务以仅使用特定处理器。 您进入任务管理器->右键单击进程->设置亲和性。

这使得其他处理器可以免费用于 SQL 和 IIS。

在某种程度上,它降低了 Windows 服务的工作效率,Windows 服务现在只能使用一组有限的处理器,但这无关紧要。

关于asp.net - 如何增加 IIS 进程优先级(对于 w3wp 和 iis apppool)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404388/

相关文章:

asp.net - 我需要下载 Microsoft Internet Information Services 吗?

c# - 如何以编程方式检测我的应用程序是否在 ASP.NET 页面中以 IIS 7.0 集成模式运行

asp.net - IIS 上的 SSL 共享

asp.net - 未找到主题名称 CN=IdentityTKStsCert 的证书

Asp.net core,如果 URL 有 Https,则重定向到静态 html 页面

asp.net - 从 Azure 网站访问文件共享

windows - 从 IIS 上的命令行列出所有托管网站

c# - 如何让浏览器后退按钮通过 AJAX 调用带你返回?

asp.net - 如何在解决方案中从我的类库访问我的默认 aspx 页面上的控件

c# - 在 IIS 上应用程序无法打开 SQL 连接