windows server 2012 R2 .NET Runtime Optimization Service CPU占用高
今天在给服务器装IIS,装完后发现有个进程占用CPU很高。
进程文件: mscorsvw.exe
进程名称: .NET Runtime Optimization Service
网上搜的资料
NET Runtime Optimization Service使用mscorsvw.exe,mscorsvw.exe是在后台预编译.net的assemblies(集合)。一旦它执行完毕,就停止。一般来说,当你安装了.NET的分发程序,它就会先用5到10分钟预编译那些高优先级的assemblies,然后等到你的电脑空闲的时候再去处理那些低优先级的assemblies 。一旦它全部处理完毕,它将会终止,你将不会再看到mscorsvw.exe。
ngen.exe executequeueditems 这就可以让其后所有排队等候的进程开始工作。
mscorsvw.exe占用CPU很高的原因
当你看到mscorsvw.exe进程占用CPU高达100%时,这就是发生在它处于一个低优先级的进程之中,所以它尽可能地不让其他你正运行的进程抢占CPU。一旦所有的assemblies都被编译完毕,assemblies将能跨进程地分享内存页。一般来说,这时的热启动将会快得多,所以我们不再丢弃你的其他进程。
解决办法:
cmd命令:
① cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
② ngen.exe executequeueditems
③ 执行完后重启电脑
当完成并重新启动计算机/服务器时,您的CPU负载应该会感觉更好。