根据 DISA,我们需要设置请求的回收选项。我似乎无法追踪这个最大值应该是多少,或者计数器何时重新启动?如果应用程序池配置为在午夜回收,请求计数器不应该重置为 0 吗?我们将我们认为的上限设置为 99,999,但这似乎每天中午左右在我们所有 3 台平衡服务器上都会达到。有时在达到专用字节限制后不久(也必须根据 STIG 设置,但大约占总操作系统内存的 70%)发出另一个回收请求,我认为要么是正在处理的排队请求太多,要么是垃圾收集很困难(因此 CPU/内存峰值)在高峰工作负载期间发出完整的垃圾收集。我看到 IIS 6.5 有 35,000 个请求,但似乎找不到关于 IIS 8.5 和 IIS 10(当我们迁移时)的最大值的良好指导。我们没有注意到我们达到了请求限制,因为 IIS 8.5 中默认未启用日志记录,但在 IIS 10 中启用了日志记录。我们还注意到绑定到 SSL 证书所绑定到的默认站点的父级 defaultapppool 确实会针对子应用程序池触发完整的垃圾收集事件(可能是因为出于安全考虑而共享配置设置)。如果有人需要一个方便的脚本来将所有池设置为在午夜回收/为 iis 8.5 启用日志记录,请看下文。
Import-Module WebAdministration
Get-ChildItem –Path IIS:\AppPools | ForEach-Object{
$appPoolName = $_.name
$appPool = Get-Item "IIS:\AppPools\$appPoolName"
$appPool.recycling.logEventOnRecycle = "Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"
$appPool.Recycling.periodicRestart.time = "0"
clear-ItemProperty "IIS:\AppPools\$appPoolName" -Name Recycling.periodicRestart.schedule #clear values
set-ItemProperty "IIS:\AppPools\$appPoolName" -Name Recycling.periodicRestart.schedule -Value @{value="00:00:00"}
$appPool | Set-Item
}
答案1
从评论中复制。
如果我们将讨论范围限制在特定的环境requests
中(即IIS 应用程序池配置),则该设置没有上限(至少从 IIS XML 架构得出的结论)。
您可以设置任何值,只要它是有效的uint
。