我有一个应用程序正在经历非常长的预热时间,长达15秒左右。预热的实例执行业务逻辑,并在约150ms内通过Internet做出响应。这最初是与34个其他应用程序共享的AppPool的一部分。我将其单独隔离,但这种情况仍然存在。它使用了ninject,我将其删除了,因为我发现其他应用上的CPU峰值非常高,但仍然看到这种现象。我对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"
我不确定在每分钟左右进行一次主动心跳检查之外还要做什么,但我真的想避免这种事情。我想念什么?