详细解说IIS应用程序池以及运用程序池回收AppPool

 更新时间:2011年04月17日 23:49:30   作者:  
什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。

指定标识应用程序池设置

这些回收应用程序池设置是在应用程序池的属性对话框的“标识”选项卡中指定的。

设置标识应用程序池设置

  1. 打开 IIS 管理控制台,单击加号展开本地计算机。
  2. 单击加号展开“应用程序池”文件夹。
  3. 右击适当的应用程序池,然后单击“属性”。出现应用程序池的属性对话框。
  4. 单击“标识”选项卡,然后设置适当的应用程序池设置。

应用程序池“属性”对话框的“标识”选项卡

大智の博客

用户名和密码

“用户名”和“密码”分别是等效于 username password ASP.NET 进程模型设置的应用程序池设置。这两种设置结合使用来使辅助进程使用指定的 Windows 标识运行。默认情况下,辅助进程使用“网络服务”(Network Service) 帐户。但是,如果选择了“可配置”单选按钮并且“用户名”和“密码”文本框包含有效值,则辅助进程将使用指定的 Windows 标识。此外,必须将 Windows 标识添加到 IIS_WPG 用户组。

将 Windows 标识添加到 IIS_WPG 用户组

  1. 在“开始”菜单上,右击“我的电脑”,然后单击“管理”。
  2. 通过右击加号展开“本地用户和组”节点。
  3. 单击“组”文件夹。在右窗格中将列出在该计算机上定义的所有组的列表。
  4. 右击“IIS_WPG”,然后单击“添加到组”。
  5. 单击“添加”按钮并输入要用于辅助进程的帐户。

指定健全应用程序池设置

这些回收应用程序池设置是在应用程序池的属性对话框的“健全”选项卡中指定的。

设置健全应用程序池设置

  1. 打开 IIS 管理控制台,单击加号展开本地计算机。
  2. 单击加号展开“应用程序池”文件夹。
  3. 右击适当的应用程序池,然后单击“属性”。出现应用程序池的属性对话框。
  4. 单击“健全”选项卡,然后设置适当的应用程序池设置。

应用程序池“属性”对话框的“健全”选项卡

大智の博客

启用 Ping

“启用 ping”是等效于 pingFrequency ASP.NET 进程模型设置的应用程序池设置。它指定 ASP.NET ISAPI 检查辅助进程是否存在的时间间隔。如果没有辅助进程,则重新启动辅助进程。默认情况下“启用 ping”是启用的而且设置为 30 秒。通过更改数值调节框中的值,可以指定一个不同的时间间隔。若要禁用 ping 操作,请清除“启用 ping”复选框。

关闭时间限制

“关闭时间限制”是等效于 shutDownTimeout ASP.NET 进程模型设置的应用程序池设置。它指定提供给辅助进程的用来正常关闭的时间长度。如果辅助进程在指定的时间长度内没有关闭,则 ASP.NET ISAPI 将结束该辅助进程。默认情况下“关闭时间限制”设置为 90 秒。通过更改数值调节框中的值,可以指定一个不同的时间限制。

通过性能应用程序池设置,可以控制辅助进程的操作。以下几节描述如何指定性能应用程序池设置。

 

指定性能应用程序池设置

性能应用程序池设置是在应用程序池的属性对话框的“性能”选项卡中指定的。

设置性能应用程序池设置

  1. 打开 IIS 管理控制台,单击加号展开本地计算机。
  2. 单击加号展开“应用程序池”文件夹。
  3. 右击适当的应用程序池,然后单击“属性”。出现应用程序池的属性对话框。
  4. 单击“性能”选项卡,然后设置适当的应用程序池设置。

应用程序池“属性”对话框的“性能”选项卡

大智の博客

网络园

“网络园”是等效于 webGardencpuMask ASP.NET 进程模型设置的应用程序池设置。若要启用“网络园”,请将“辅助进程的最大数目”设置为高于 1 的值。该值还为应用程序池确定最大进程数。

因为网络园支持使用多个进程,所以,每一进程在应用程序状态、进程内会话状态、缓存和静态数据方面都有其自己的副本。网络园不应用于所有应用程序,尤其在这些应用程序需要维护状态的情况下。在决定网络园模式是否适用前,一定要检查应用程序的性能。

在使用网络园时,理解会话状态和循环工作的方式是十分重要的。考虑其他应用程序池设置影响应用程序的方式也是十分重要的。

使用辅助进程隔离模式的网络园中的会话状态

在使用会话状态时,请注意,辅助进程隔离模式不支持将请求传送回引起请求返回的进程。当一个应用程序运行在处于 ASP 会话状态或应用程序状态的网络园中时,该应用程序需要将其请求发送回发起的进程。在使用 IIS 6.0 应用程序池时,要确保应用程序让一个连接总保持为打开状态,以便其请求被发送回适当的进程。如果此连接没有保持为打开状态,则请求将被发送到为网络园提供服务的下一可用的辅助进程。

使用辅助进程隔离模式的网络园中的循环

循环是一种用于应用程序的负载平衡方法。在每个请求到达时,它会自动被发送到下一可用进程。例如,如果网络园具有 4 个进程,则请求被发送到进程 0、1、2 和 3,并依照这一顺序发送。然后为其他请求重复该循环。

使用辅助进程隔离模式的网络园中的应用程序池参数

某些应用程序池设置具有特定于网络园的行为。下表总结了这些行为。

应用程序池设置 行为
AppPoolQueueLength 此参数的值不受影响。但是,请求是通过在所有为网络园提供服务的辅助进程上循环而分发的。
DisallowOverlappingRotation 网络园中没有行为更改。
DisallowRotationOnConfigChange 网络园中没有行为更改。
IdleTimeout 为每一进程独立计算,这样各进程的超时可以彼此独立。根据所选择的路由算法,将自动配置要加载的进程的数目。
LoadBalancerCapabilities 网络园中没有行为更改。
OrphanAction 网络园中没有行为更改。
OrphanWorkerProcess 网络园中没有行为更改。
PeriodicRestartTime 此参数的含义在网络园中发生了变化。在网络园中,此参数指定回收所有进程的时间间隔。进程在指定时间长度内以平均的时间间隔轮流回收。例如,如果网络园具有四个进程并且 PeriodicRestartTime 被设置为 20 小时,则在 5 小时后回收第一个进程,在 10 小时后回收第二个进程,依此类推。
注意   如果进程崩溃,则向替代进程提供 PeriodicRestartTime 的运行时值。这使得崩溃的进程可以在指定的 PeriodicRestartTime 内与其他进程一起回收。
PeriodicRestartRequests 此参数的含义在网络园中发生了变化。在网络园中,此参数指定在达到某一请求数目后回收所有进程。进程在指定的请求数目内按平均时间间隔轮流回收。例如,如果网络园具有四个进程并且 PeriodicRestartRequests 设置为 40,000 个请求,则第在 10,000 个请求后回收一个进程,在 20,000 个请求后回收第二个进程,依此类推。在回收了第一组进程后,将向下一组进程指派 40,000 这一 PeriodicRestartRequests 值。
PeriodicRestartSchedule 网络园中没有行为更改。如果管理员决定使用基于时间表的回收,则同时回收所有网络园进程。
PingInterval 网络园中没有行为更改。
PingResponseTime 网络园中没有行为更改。
PingingEnabled 网络园中没有行为更改。
RapidFailProtection 网络园中没有行为更改。例如,在一段时间间隔内计算整个网络园的失败总数然后进行比较。这提供了额外的恢复能力。
RapidFailProtectionInterval 网络园中没有行为更改。例如,在一段时间间隔内计算整个网络园的失败总数然后进行比较。这提供了额外的恢复能力。
RapidFailProtectionMaxCrashes 网络园中没有行为更改。例如,在一段时间间隔内计算整个网络园的失败总数然后进行比较。这提供了额外的恢复能力。
SMPAffinitized 网络园中没有行为更改。
SMPProcessorAffinityMask 在 IIS 5.0 隔离模式中,您只能具有与 CPU 的数目一样多的辅助进程。在辅助进程隔离模式中,多个 CPU 可用于单个辅助进程。
ShutdownTimeLimit 网络园中没有行为更改。
StartupTimeLimit 网络园中没有行为更改。

空闲超时

“空闲超时”是等效于 idleTimeout ASP.NET 进程模型设置的应用程序池设置。它指定辅助进程或应用程序池在开始处于不活动状态后,过多长时间将其关闭。默认情况“空闲超时”是启用的而且设置为 20 分钟。通过更改数值调节框中的值,可以指定一个不同的时间限制。若要禁用“空闲超时”,请清除该复选框。

请求队列限制

“请求队列限制”是等效于 restartQueueLimit ASP.NET 进程模型设置的应用程序池设置。它指定在异常终止后等待辅助进程启动时在 ASP.NET ISAPI 中排队的请求的最大数目。默认情况下“请求队列限制”是启用的而且设置为 1000 个请求。通过更改数值调节框中的值,可以对排队的请求的数目指定不同的限制。若要禁用“请求队列限制”,请清除该复选框。

通过回收应用程序池设置,可以控制如何恢复系统资源。以下几节介绍如何指定回收应用程序池设置。

 

指定回收应用程序池设置

回收应用程序池设置是在应用程序池的属性对话框的“回收”选项卡中指定的。

设置回收应用程序池设置

  1. 打开 IIS 管理控制台,单击加号展开本地计算机。
  2. 单击加号展开“应用程序池”文件夹。
  3. 右击适当的应用程序池,然后单击“属性”。出现应用程序池的属性对话框。
  4. 单击“回收”选项卡,然后设置适当的应用程序池设置。

应用程序池“属性”对话框的“回收”选项卡

大智の博客

内存回收

“内存回收”是等效于 memoryLimit ASP.NET 进程模型设置的应用程序池设置。它指定辅助进程可以使用的最大内存量。如果辅助进程超出了这一数量,将创建新的进程来替换它,并且当前所有请求都被重新分配给该新进程。在 memoryLimit ASP.NET 进程模型设置与“内存回收”应用程序池设置之间有两个重要的区别:

  • memoryLimit ASP.NET 进程模型设置只使用物理内存。“内存回收”应用程序池设置允许您为物理内存和虚拟内存分别指定限制。由于公共语言运行库的垃圾回收器工作的方式,物理内存(或物理内存和虚拟内存的组合)常用于 ASP.NET 应用程序。虚拟内存常用于将堆划分为多个片断的传统本机应用程序。
  • “内存回收”应用程序池设置是按兆字节 (MB) 指定的,而不是按相对于总内存的百分比指定的。

回收辅助进程

“回收辅助进程”是等效于 requestLimit ASP.NET 进程模型设置的应用程序池设置。它指定导致辅助进程或应用程序池被回收的请求的数目。默认情况下“回收辅助进程”是禁用的。若要启用“回收辅助进程”,请选取该复选框并在数值调节框中指定请求数。

回收多个辅助进程

“回收多个辅助进程”是等效于 timeout ASP.NET 进程模型设置的应用程序池设置。它指定回收辅助进程或应用程序池的时间间隔。默认情况下“回收多个辅助进程”是启用的而且设置为 120 分钟。通过更改数值调节框中的值,可以指定一个不同的时间间隔。若要禁用“回收多个辅助进程”,请清除该复选框。

相关文章

最新评论