应用程序暂停IIS应用程序池.Net 4.5.1

use*_*080 5 .net iis

我刚刚在msdn上看到一个博客,.Net 4.5.1引入了新的应用程序池设置App Suspend.在什么情况下你想将你的应用程序池设置为"暂停"而不是"终止",反之亦然?如果"挂起"空闲模式是比终止更好的设置,那么为什么不默认为挂起并摆脱"终止"空闲模式.

Man*_*ham 10

IIS 6及更高版本使用应用程序池来为网站提供服务.每个应用程序池基本上都是一个单独的工作进程,它将响应对该应用程序池中的任何网站的请求.它有助于隔离不同的网站(资源使用,错误,安全漏洞等).

应用程序池的部分构造方式,它们默认为"循环"或每隔一段时间重新启动,以避免应用程序崩溃或重置内存泄漏.

导致App Pool循环的主要方法有三种:

  1. 基于区间(默认设置为每29小时)
  2. 没有响应(通过IIS检查应用程序性能来衡量)
  3. 配置更改(更改web.config或应用程序池设置)

回收利用并不是什么大问题,因为IIS会在终止旧流程之前创建新流程并转移请求,因此服务请求没有差距.但是,如果没有一定时间的请求(默认为20分钟),则应用程序池有一个设置将完全终止进程.

当应用程序池关闭并且有新请求进入时,工作进程启动,加载.NET框架,编译应用程序中的任何页面并最终提供请求的时间明显滞后几秒钟.这被称为"冷启动",可能会给您的用户带来糟糕的体验.

如果需要,您可以禁用循环设置和基于超时的终止选项(我会为几个大型应用程序执行此操作),但如果您在单个服务器上运行大量不会获得大量连续流量的站点,则可以可以使用新的"暂停"选项来节省资源.

IIS不是完全终止进程,而是将其移动到一个非常低内存的状态.这样,如果新请求确实进入,您的应用会立即启动.没有滞后.但是当没有流量时,它只使用一小部分内存而没有CPU,因此服务器上没有任何开销.

它实际上适用于运行大量站点的服务器的共享环境.如果您有持续的流量,您将不会注意到差异,因为应用程序池永远不会停止,但如果您坚持默认设置,那么我强烈建议将应用程序池设置为暂停模式.请注意,这需要Windows Server 2012 R2和.NET 4.5.1才能工作.

这是一个Youtube视频,它从Visual Studio团队进一步解释:https: //www.youtube.com/watch?v = hXw5gyqTxoo

  • 它已被回答: - 如果您有持续的流量,应用程序池将不会停止. - 如果您没有持续流量,则可以禁用超时设置,以便应用程序池不会停止. - 但是,如果您没有持续流量并且启用了超时设置,那么当设置为"终止"时,应用程序池将完全关闭,这会使对站点的新请求变得更慢.将其设置为"挂起"将避免这种完全关闭,因此新请求不会花费这么长时间.如果选项可用,则没有理由不将其设置为"暂停". (2认同)