应用程序池工作进程空闲超时操作:挂起与终止

Application pool worker process Idle Time-out Action: Suspend vs Terminate

我在 Web 服务器的 IIS 8.5 上部署了一个 ASP.NET MVC 应用程序,我想知道这两个功能在设置“空闲超时操作”方面的区别。

如果进程被挂起,进程使用的内存和资源是否被移除和释放?我认为删除和释放用于避免内存泄漏的内存是很好的,所以我通常使用终止功能。

我觉得你应该根据自己的应用环境选择Suspend或者Terminate

通常,要为单个应用程序池配置空闲工作进程页面调出,我们选择 Terminate,要将空闲工作进程页面调出配置为应用程序池的默认值,我们选择 Suspend.

IIS 为管理员提供了一个选项,可以让在指定时间段内空闲的工作进程超时。对于不经常访问的站点来说,这是一个不错的选择,因为它可以在站点空闲时释放系统资源。缺点是下次访问该站点时,用户将需要等待工作进程再次启动。

Idle Time-out action中,它提供了暂停空闲工作进程而不是终止它的选项。挂起的工作进程保持活动状态但被调出到磁盘,从而减少它消耗的系统资源。当用户再次访问该站点时,工作进程将从暂停中唤醒并快速可用。当一个空闲的worker进程终止时,worker进程被关闭,后续访问该站点时启动周期会变长。

我意识到这个问题在互联网时代变得“陈旧”,但我确实想指出一件事。虽然我同意 samwu 并赞成他的回答,但 OP 在问题中和上面的评论中再次提到他希望避免潜在的内存泄漏。暂停对此没有帮助,因为进程未终止,因此 Windows 无法回收“泄漏”的内存。 “暂停”之于应用程序池就像“休眠”之于您的 dekstop/laptop。如果内存有问题 in/with 并且你休眠你的计算机,当你从休眠中苏醒时它仍然存在