我正在尝试限制 IIS 8.5 中应用程序池使用的内存。我的问题是,如果我设置的限制看起来明显大于典型的内存使用量,它会在几分钟内回收一次。
上下文信息如下。
最初,我在 UI 中设置了 8GB 的限制,我的 applicationhost.config 如下所示:
<add name="AppPool" autoStart="true" managedRuntimeVersion="v4.0" startMode="AlwaysRunning">
<processModel idleTimeout="00:00:00" />
<recycling logEventOnRecycle="Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory">
<periodicRestart memory="8192000" time="00:00:00">
<schedule>
<clear />
<add value="01:00:00" />
</schedule>
</periodicRestart>
</recycling>
阅读本文,我意识到该值可能无效,因为它指示的最大值是 4,294,967 KB。因此,我输入了这个值(来自 UI),并且它正确地反映在配置文件中。
如果我删除内存限制,则w3wp
进程使用的内存不会超过 2GB,并且不会发生回收。
通过读取事件查看器(来源 = WAS)可以确认回收的原因(达到内存限制)。
问题:如何配置内存限制而不出现回收问题?