作者:Gary Ericson
在 IIS 8.5 中,管理员可以选择暂停空闲的工作进程,而不是将其终止。
兼容性
版本 | 说明 |
---|---|
IIS 8.5 和更高版本 | IIS 8.5 中引入了空闲工作进程页出。 |
IIS 8.0 和更低版本 | IIS 8.5 之前的版本不支持空闲工作进程页出。 |
问题
Windows Server 2012 上的 Internet Information Services (IIS) 为管理员提供使指定时间段内处于空闲状态的工作进程超时的选项。 对于不经常访问的站点来说,这是一个很好的选择,因为可以在站点空闲时释放系统资源。 缺点是下次访问站点时,用户需要等待工作进程再次启动。
解决方案
在 IIS 8.5 及更高版本中,管理员可以选择挂起空闲的工作进程,而不是将其终止。 挂起的工作进程虽保持活动状态,但已页出到磁盘,从而减少其消耗的系统资源。 当用户再次访问站点时,工作进程会从挂起状态唤醒并快速可用。 当空闲工作进程终止时,工作进程将关闭,并且随后访问站点时,启动期将更长。 终止进程是默认行为,也是 IIS 8.5 之前的早期版本的 IIS 中使用的相同行为。
可以为单个应用程序池配置 idleTimeoutAction 属性,也可以针对所有应用程序池将其配置为默认值。
分步说明
为单个应用程序池配置空闲工作进程页出
- 打开 IIS 管理器。
- 在“连接”窗格中选择“应用程序池”,在“应用程序池”窗格中选择应用程序池,然后单击“操作”窗格中的“高级设置…”。
- 在“高级设置”对话框中,在“进程模型”下,选择“挂起”作为“空闲超时操作”的值,以便在达到超时值时挂起工作进程,将其页出到磁盘。 选择“终止”以关闭工作进程。
- (可选)将“空闲超时”值从默认 20 分钟设置为不同的时间段。
- 单击“确定”。
将空闲工作进程页出配置为应用程序池的默认值
- 打开 IIS 管理器。
- 在“连接”窗格中选择“应用程序池”,然后单击“操作”窗格中的“设置应用程序池默认值...”。
- 在“应用程序池默认值”对话框中,在“进程模型”下,选择“挂起”作为“空闲超时操作”值,以便在达到超时值时挂起工作进程,将其页出到磁盘。 选择“终止”以关闭工作进程。
- (可选)将“空闲超时”值从默认 20 分钟设置为不同的时间段。
- 单击“确定”。
查看挂起状态下的资源使用
可以在任务管理器中看到挂起的工作进程,还可以看到它们使用很少的内存或 CPU。
验证 applicationHost.config 中的空闲超时操作配置
可以在 applicationHost.config 文件中的两个位置输入 idleTimeoutAction 配置:
- 对于单个应用程序池,在 <add> 元素的 <processModel> 子元素中,该元素仅为该池设置 idleTimeoutAction 属性。 下面是 applicationHost.config 文件的屏幕截图中 DefaultAppPool 发生的情况,其中 idleTimeoutAction 设置为“挂起”。
- 对于所有应用程序池,在 <applicationPoolDefaults> 元素的 <processModel> 子元素中,该元素会为所有池创建默认设置。 如果未为特定池设置 idleTimeoutAction,例如下面的 .NET v4.5 池,则默认的 idleTimeoutAction 值将用于该池,在本例中为“终止”。 如果为池设置了 idleTimeoutAction,则此设置将替代默认值。
总结
在本指南中,您已将 IIS 配置为挂起或终止已空闲指定时间的工作进程。