IIS 工作进程不会释放内存,直到任何其他应用程序需要内存

IIS Worker Process not releasing memory until any other Application required memory

我在 IIS 上有六个网站,其工作进程内存约为 1.5 GB,并且在进程完成后它不会减少,直到我 运行 系统上的其他一些应用程序需要内存,然后 IIS 工作进程内存正在减少随着其他应用程序内存的增加。

使用 windbg 工具调试您的网站并找出导致问题的确切原因。应用程序池回收通常会关闭旧的工作进程,因此请尝试根据您在 iis 中的要求设置一些应用程序池回收设置。在请求结束时或使用完连接时使用 .Dispose()。

现在您可以在某个 CPU 限制后将操作设置为 KillW3p。

<applicationPools>
   <add name="DefaultAppPool">
     <cpu limit="80000" action="KillW3wp" resetInterval="00:02:00" />
   </add>
</applicationPools>

按照以下步骤操作。它对我有用。

第一步: 要启用 GC 内存调整,请将以下设置添加到 Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config

<configuration>
  <!-- ... -->
  <runtime>
    <performanceScenario value="HighDensityWebHosting"  />
    <!-- ... -->

link > https://docs.microsoft.com/en-us/aspnet/whitepapers/whats-new-in-aspnet-45-and-visual-studio-2012