技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

【解决】.NET Runtime Optimization Service占CPU 100%

作者:admin    时间:2021-5-13 15:53:18    浏览:

今天发现服务器运行突然变得缓慢,于是打开任务管理器查看究竟,发现是.NET Runtime Optimization Service这个进程占用CPU 100%了。第一次看到这个进程,从字面上了解,这是个.NET运行优化服务进程,不是什么病毒,所以心里踏实了很多,我只需要解决这个问题即可。我心想这个进程应该是个自动化进程,也即是.NET自动优化的进程,优化完就自动关闭了,于是我就干等待。不过等了好一会,发现没什么动静,我就想为了不影响服务器正常运行,能不能把它给停掉。于是找了下资料,发现是有方法解决这个问题的。

.NET Runtime Optimization Service占CPU 100%

.NET Runtime Optimization Service占CPU 100%

通过查找相关资料,发现这个进程是在系统安装了.NET Framework 或是.NET Framework 被更新之后,触发了.NET的最佳化服务,一旦它全部处理完毕,它将会终止,不再占用资源。我们不应该立即终止该进程,以免造成不可预测的后果,但我们可以加速该进程的运行,这是最好的解决方法。

把下面脚本保存到一个文本文件里,把文本文件扩展名改为.bat,然后使用管理员身份运行该脚本文件,即可加快这个服务的进度。

# Script to force the .NET Framework optimization service to run at maximum speed.

$isWin8Plus = [Environment]::OSVersion.Version -ge (new-object 'Version' 6,2)
$dotnetDir = [environment]::GetEnvironmentVariable("windir","Machine") + "\Microsoft.NET\Framework"
$dotnet2 = "v2.0.50727"
$dotnet4 = "v4.0.30319"

$dotnetVersion = if (Test-Path ($dotnetDir + "\" + $dotnet4 + "\ngen.exe")) {$dotnet4} else {$dotnet2}

$ngen32 = $dotnetDir + "\" + $dotnetVersion +"\ngen.exe"
$ngen64 = $dotnetDir + "64\" + $dotnetVersion +"\ngen.exe"
$ngenArgs = " executeQueuedItems"
$is64Bit = Test-Path $ngen64


#32-bit NGEN -- appropriate for 32-bit and 64-bit machines
Write-Host("Requesting 32-bit NGEN") 
Start-Process -wait $ngen32 -ArgumentList $ngenArgs

#64-bit NGEN -- appropriate for 64-bit machines

if ($is64Bit) {
    Write-Host("Requesting 64-bit NGEN") 
    Start-Process -wait $ngen64 -ArgumentList $ngenArgs
}

#AutoNGEN for Windows 8+ machines

if ($isWin8Plus) {
    Write-Host("Requesting 32-bit AutoNGEN -- Windows 8+") 
    schTasks /run /Tn "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319"
}

#64-bit AutoNGEN for Windows 8+ machines

if ($isWin8Plus -and $is64Bit) {
    Write-Host("Requesting 64-bit AutoNGEN -- Windows 8+") 
    schTasks /run /Tn "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319 64"
}

执行完毕再打开任务管理器,发现.NET Runtime Optimization Service已经没了或者CPU不再是100%了,因为整个该进程已经被加速完成了。

.NET Runtime Optimization Service已经被加速完成

.NET Runtime Optimization Service已经被加速完成

总结

本文介绍了.NET Runtime Optimization Service占CPU 100%的解决方法,对于使用windows服务器的用户来说,可能会遇到这个问题。

标签: windows  
x
  • 站长推荐
/* 左侧显示文章内容目录 */