Azure asp.net core 2.2的CPU使用率很高

时间:2019-06-19 14:26:06

标签: azure asp.net-core cpu-usage kudu

因此,我面临的情况是,部署在Azure云上的项目在大多数情况下通常会获得较高的CPU利用率,即100%,但是重新启动应用程序后,几个小时的CPU使用率将达到10-15%。我确实尝试过使用Kudu Profiler,但并没有帮助,大多数情况下,它表明某些方法在总CPU使用率为100%时使用40%CPU,但在CPU使用率较低时使用2-3%。 我注意到的一件奇怪的事情是,如果某些API控制器方法没有得到正确的请求,BODY会抛出CGI / 502错误,尽管应该抛出Null引用异常,因为该方法的主体不正确,这更有趣-返回CGI异常大约需要2分钟,而不是通常在本地计算机上的Web服务上需要2秒的时间。 我从S1计划过渡到S2计划,尽管工作速度更快,但是从天蓝的洞察力来看,CPU使用率仍为90-10%。

1 个答案:

答案 0 :(得分:0)

首先,我建议您编写代码以获取服务器的故障转储,您可以参考此link进行设置。

以下类似内容将帮助您在Powershell中进行编写。

$dumpFolder = "C:\crash-dumps"

if (!(Test-Path $dumpFolder)) {
    mkdir $dumpFolder | Out-Null
}

$dumpKey = "HKLM:SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"

if (!(Test-Path $dumpKey)) {
    New-Item -Path $dumpKey | Out-Null
}

$dumpKey = "HKLM:SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\dotnet.exe"
New-Item -Path $dumpKey -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpFolder -Value $dumpFolder -PropertyType String -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpCount -Value 3 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpType -Value 2 -PropertyType DWORD -Force | Out-Null

$dumpKey = "HKLM:SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.exe"

New-Item -Path $dumpKey -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpFolder -Value $dumpFolder -PropertyType String -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpCount -Value 3 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpType -Value 2 -PropertyType DWORD -Force | Out-Null

基于故障转储,我们可以轻松了解造成问题的原因。

对于类似的问题,您可以跟踪此request。另外,尝试将您的应用程序降级到V2.0.0,看看它是否仍然导致CPU峰值。如果是,那么我们需要查看注释中提到的代码。