为什么 IIS 每 15 分钟回收一次我的应用程序池?

为什么 IIS 每 15 分钟回收一次我的应用程序池?

今天,我们的 ASP.NET MVC IIS 7 Web 应用程序拥有大量用户。

我注意到大约每隔 15 分钟,应用程序池进程就会被终止,然后启动一个新的进程。

我没有找到任何具体的原因。我可以想象内存限制已达到,但我无法验证这一点。

应用程序池具有默认设置。

我的问题是:

  • 我是否可以在某处(事件日志?)阅读应用程序池被回收的原因?

更新 1

这是内存随时间的变化情况。似乎当内存用到 12 GB(服务器的物理内存)时,进程就会被终止:

在此处输入图片描述

一个假设是,对于每个用户,该用户的会话占用一些字节的 RAM,因此当新用户进入系统时,内存会越来越大。

答案1

回答您的具体问题,是的,您可以在 Windows 系统事件日志中查看应用程序池回收事件。筛选事件源“WAS”。

默认情况下,仅记录以下回收原因;

  • 超出私有内存限制
  • 固定时间间隔
  • 超出虚拟内存限制

您可以更改默认值并启用其他回收事件的日志记录

Application Pool | Advanced settings | Recycling | Generate Recycle Event Log Entry

默认情况下,应用程序池不会因虚拟内存限制或私有内存限制而回收(默认限制设置为 0 = 从不)。

相关内容