当网站没有执行任何操作时,w3wp.exe 占用了 50% 的 CPU 时间

当网站没有执行任何操作时,w3wp.exe 占用了 50% 的 CPU 时间

我有一台运行 IIS 7 的 Windows Server 2008,其中有多个不同的网站,每个网站都有自己的应用程序池。

偶尔,当无人查看网站时,这些网站中的每一个都会启动 w3wp.exe 进程并使用大约 50% 的 CPU 资源。

有谁知道这个的原因吗?有没有办法阻止这种情况,或者至少减少它,因为它会减慢正在使用的其他网站的响应时间。

所有网站都是运行.NET 4 和 MVC 2 或 3 的 asp.net MVC 应用程序。

谢谢

答案1

我首先要确认应用程序域没有重新启动。有时这是由于文件正在更改。

将其添加到位于以下位置的主 web.config 中:

C:\WINDOWS\Microsoft.NET\Framework\<version>\CONFIG or
C:\WINDOWS\Microsoft.NET\Framework64\<version>\CONFIG 

<add name="Application Lifetime Events Default" eventName="Application Lifetime Events"
    provider="EventLogProvider" profile="Default" minInstances="1"
    maxLimit="Infinite" minInterval="00:01:00" custom="" />

http://blogs.msdn.com/b/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx#686393

答案2

考虑 GC。GC 背后的算法非常神秘,因此 GC 可能会在您认为不应该运行的时候运行。

相关内容