mscorsvw.exe(.NET 运行时优化服务)的 CPU 使用率不稳定

Mar*_*son 5 windows-server-2008-r2 cpu-usage

我有一个 Server 2008 R2 终端服务器,它在过去三个月里一直闲置着,使用率非常非常低(可能一个用户一个小时,一天一次)。

突然间,莫名其妙地mscorsvw.exe (.NET Runtime Optimisation Service)开始消耗一个处理器的 100%,导致各种警报和触发器响起。这是一种重复的模式,因此可以很容易地判断接下来何时会发生:

.net 优化器引起的处理器峰值

有谁知道这可能导致什么?我已经完成了显而易见的事情(重新启动了服务器),但除此之外,我还是 SOL。

我能想到的唯一可能相关的是我今天早上通过 WSUS 批准了六个 Windows 更新,但它们要到明天凌晨 2 点才会安装(其中一些与 .NET 4 安全性有关)。

没有人登录到服务器(除了我),即使他们登录了,我们也没有在那里使用任何 .NET 应用程序。

Bar*_*rim 8

mscorsvw 是一个预编译 .NET 二进制文件的过程。您的更新可能触发了此活动。至少,这就是http://blogs.msdn.com/b/davidnotario/archive/2005/04/27/412838.aspx所说的正在发生的事情。

如果您可以运行 sysinternals procmon 实用程序,您可能会获得更多线索。这将告诉您 mscorsvw 正在点击或关注哪些文件,并帮助确定它是否真正关注潜在的 .NET 文件。

从那个网站,如果这是正在发生的事情,运行

ngen.exe 执行队列项

应该通过让它立即运行所有内容而不是等待 CPU 空闲来“清除队列”,因为它出现在您的服务器上时。一旦完成预编译,它应该停止发生。