根据 DISA,我们需要为请求设置回收选项。我似乎无法追踪这应该是什么最大值或计数器何时重新启动?如果应用程序池配置为在午夜回收,请求计数器不应该重置为 0 吗?我们将我们认为的上限设置为 99,999,但这似乎每天中午左右在我们所有 3 台平衡服务器上都会受到影响。有时在私有字节限制被击中后不久(也必须为每个 STIG 设置,但大约是总操作系统内存的 70%)发出另一个回收请求,我认为有太多排队的请求正在处理或垃圾收集正在挣扎(因此cpu/mem 峰值)在工作负载高峰期间发出完整的垃圾收集。我已经看到 IIS 6.5 有 35,000 个请求但不能 似乎找不到关于 IIS 8.5 和 IIS 10 的最大值的良好指导(当我们迁移时)。我们没有注意到我们达到了请求限制,因为在 IIS 8.5 中默认情况下没有启用日志记录,但在 IIS 10 中。我们还注意到绑定到 ssl 证书绑定到的默认站点的父级 defaultapppool 确实触发针对子应用程序池的完整垃圾收集事件(可能是因为共享配置设置的安全性)。如果有人需要一个方便的脚本来将所有池设置为在午夜回收/为 iis 8.5 启用日志记录,则如下所示。我们还注意到绑定到绑定 ssl 证书的默认站点的父级 defaultapppool 确实触发了针对子应用程序池的完整垃圾收集事件(可能是因为安全性的共享配置设置)。如果有人需要一个方便的脚本来将所有池设置为在午夜回收/为 iis 8.5 启用日志记录,则如下所示。我们还注意到绑定到绑定 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
}