要点 只有当 IIS 在工作进程隔离模式下运行时才能使用这个 IIS 6.0 功能。
在工作进程隔离模式下,可以将 IIS 配置为定期重新启动工作进程,以便可以回收出错的 Web 应用程序。这可以确保这些池中的应用程序处于良好的运行状况并且可以确保系统资源可以恢复。
可以将工作进程配置为基于运行时间、处理请求的数目、计划的时间以及两种内存使用类型来重新启动。
本主题包括下列信息:
根据应用程序池回收的配置方式,万维网发布服务(WWW 服务)可以使用两种方法来回收已分配的工作进程:
注意 当 WWW 服务回收某个工作进程时,它并不断开现有的 TCP/IP 连接。HTTP 协议堆栈 (HTTP.sys) 建立并维护 TCP/IP 连接。
在重叠回收方案中,要回收的进程继续处理请求,同时 WWW 服务创建一个替代工作进程。在停止旧工作进程之前启动新的工作进程,然后将请求定向到新的进程。此设计可以防止服务中断,因为旧进程关闭前仍然保持与 HTTP.sys 的通信以处理请求。因为可重叠关闭或启动的关闭超时值是可以配置的,所以在工作进程仍在处理请求的同时可以终止该进程(如果它在时间限制内没有处理完请求的话)。
在配置应用程序池以基于运行时间来回收工作进程时,可以在设置的运行时间内回收所有的工作进程,但不能同时回收所有这些工作进程。可以在设置的时间内的不同时段进行回收应用程序,以减少客户端请求服务的中断次数。
类似地,在配置应用程序池以基于处理请求的数目来回收应用程序时,可以每隔一段时间回收一次以分担与工作进程回收有关的系统开销。
在决定是否启动工作进程回收时,应考虑以下常规指南。最佳的解决方案是修复引起故障的应用程序。但是,并非总能使用重新编码,尤其是运行的其他应用程序代码无法修改时。
在以下情况下考虑使用回收:
在以下情况下,可能根本不需要使用回收:
要有效地使用回收,请仔细检查回收所依据的标准(如下表中所示)。
回收依据的条件 | 描述 | 使用时间 |
---|---|---|
ISAPI 请求 | 根据应用程序池中 ISAPI 的请求回收工作进程。 | ISAPI 扩展可以将其自身声明为运行状况差。 |
运行时间 | 根据用户指定的时间(分钟)回收工作进程。 | 存在故障的应用程序的运行时间过长。 |
请求数目 | 当超文本传输协议 (HTTP) 请求超出某个特定阈值时回收工作进程。 | 根据应用程序接收到的请求数目,应用程序出现故障。 |
计划的时间 | 在 24 小时内的指定时间进行回收。 | 条件与运行时间的条件类似。 |
虚拟内存(保留的内存加上已使用的内存) | 当工作进程虚拟内存达到某个特定阈值时回收该工作进程。 | 内存堆栈碎片过多(这是由于应用程序保留多次内存造成的)。症状是虚拟内存持续增加。 |
已使用的内存 | 当 W3wp.exe 进程使用的内存达到某个特定阈值时回收工作进程。 | 某些应用程序出现内存泄漏。 |
根据需要 | 当 IIS 管理员可以使用 Microsoft® 管理控制台 (MMC) 或脚本控制整个应用程序池的回收时开始回收。 | 在其他站点启动并运行时,有一个引起故障的应用程序池。请考虑回收该应用程序,而无需重置整个 WWW 服务。 |
要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
根据需要立即回收工作进程
配置要在经过一定时间后回收的工作进程
配置要在处理一定数量的请求后回收的工作进程
配置要在计划的时间回收的工作进程
注意 在将回收设置为在计划的时间进行时,如果修改了系统时间,则回收可能不在计划的时间进行。要避免无意中更改了回收时间,请在更改系统时间后,立即回收计划的工作进程。
配置要在消耗一定内存量之后回收的工作进程