今天在給服務器裝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負載應該會感覺更好。