У меня есть приложение, которое испытывает очень длительные периоды прогрева, до 15 секунд или около того.Нагретый экземпляр выполняет бизнес-логику и отвечает через ~ 150 мс по Интернету.Первоначально это было частью общего AppPool с 34 другими приложениями.Я изолировал его сам по себе, но это все еще происходит.Он использовал ninject, который я удалил, так как я видел чрезвычайно высокие пики ЦП в других приложениях с ним, но все еще наблюдаю такое поведение.Моя стандартная конфигурация для AppPools такова:
Set-ItemProperty -Path $newPool.PSPath -Name managedRuntimeVersion -Value "v4.0"
Set-ItemProperty -Path $newPool.PSPath -Name startMode -Value "AlwaysRunning"
Set-ItemProperty -Path $newPool.PSPath -Name processModel.idleTimeout -Value ([TimeSpan]::FromSeconds(0))
Set-ItemProperty -Path $newPool.PSPath -Name recycling.periodicRestart.time -Value ([TimeSpan]::FromSeconds(0))
Set-ItemProperty -Path $newPool.PSPath -Name recycling.periodicRestart.schedule -Value @{Value="04:00"}
Set-ItemProperty -Path $newPool.PSPath -Name cpu.limit -Value 50000
Set-ItemProperty -Path $newPool.PSPath -Name cpu.action -Value "ThrottleUnderLoad"
Я не уверен, что еще нужно делать вне активной проверки сердцебиения каждую минуту или около того, чего я действительно хочу избежать.Чего мне не хватает?