IIS 6的核心在于工作进程隔离模式,而应用程序池则是定义工作进程如何进行工作,因此,可以说应用程序池是整个IIS 6的核心。
和IIS 5中只能使用单个应用程序池不同,工作在工作进程隔离模式的IIS 6可以创建多个应用程序池,不同的应用程序池之间是完全隔离的,某个应用程序池停止服务时不会影响到其他应用程序池。
在使用应用程序池之前,你应该确定你所需要的应用程序池数量。可能有很多朋友会认为,既然不同的应用程序池之间是完全隔离的,那么我只需要为每个Web站点创建一个应用程序池就可以了。这个办法在IIS服务器上具有较少的Web站点数量时可以使用,但是如果IIS服务器上具有很多Web站点数量,那么这个办法就不适用了,因为不同的应用程序池在被访问时都会创建各自的工作进程,当大量的工作进程并发工作时会消耗大量的系统资源和CPU利用率,反而会降低服务器性能。你应该根据Web站点的重要性、隔离性、所运行代码的安全性和稳定性等来对IIS服务器上所具有的Web站点进行划分,然后根据情况来决定所需要的应用程序池数量。对于那些非常重要的Web站点、需要单独隔离的Web站点、所运行代码稳定性和安全性并不可靠的Web站点配置为使用各自独立的应用程序池,而将其他普通的Web站点配置为使用一个公共的应用程序池。
默认情况下,在安装IIS时会创建一个默认网站并创建一个名为DefaultAppPool的应用程序池为其使用;默认配置下的应用程序池已经可以很好的进行工作,建议你只有在特别需要时才对应用程序池进行配置。
配置应用程序池属性
在IIS管理控制台中展开应用程序池文件夹,然后右击对应的应用程序池,点击属性,你可以在应用程序池的属性中进行以下配置:
回收
在回收标签,你可以设置工作进程的回收方式:
[attach]485[/attach]
回收工作进程(分钟):在工作进程运行多少分钟后回收工作进程,默认启用,并且设置为1740分钟(29小时);
回收工作进程(请求数目):在工作进程处理多少 个HTTP请求后终止此工作进程,默认禁用,如果启用则默认值为35000;
在下列时间回收工作进程:在指定的时间回收工作进程,默认禁用;如需启用,勾选后点击添加按钮添加回收的时间即可,使用24小时制定义回收的时间;
消耗太多内存时回收工作进程:
最大虚拟内存(兆):当工作进程使用的虚拟内存达到设置的值时回收工作进程,默认禁用,如果启用则默认值为500 M;建议设置为不超过虚拟内存总数的70%;
最大使用的内存(兆):当工作进程使用的物理内存达到设置的值时回收工作进程,默认禁用,如果启用则默认值为192 M;建议设置为不超过物理内存总数的60%;
另外需要注意的是,应用程序池具有以下两种工作进程回收方式,不过这两种回收方式均不会造成Web服务的中断:
默认情况下,应用程序池使用重叠回收方式。在这种方式下,当应用程序池要关闭某个工作进程时,会先创建一个工作进程,直到新的工作进程成功创建后才关闭旧的工作进程;
应用程序池也可以先关闭旧的工作进程,然后再创建新的工作进程。
如果Web应用程序不支持多实例运行,那么你必须配置应用程序池禁止使用重叠回收方式。此配置无法在IIS管理控制台中进行修改,只能通过在metabase.xml中修改对应应用程序池的DisallowOverlappingRotation metabase属性为true进行。
性能
在性能标签你可以设置工作进程的运行方式:
[attach]486[/attach]
在空闲此段时间后关闭工作进程(分钟):当工作进程空闲多少分钟后关闭此工作进程,这降低了空闲工作进程对系统资源和CPU性能的消耗,默认启用并且设置为20分钟;
核心请求队列限制为(请求次数):当HTTP.sys接收到某个客户端发送的HTTP请求时,如果处理此请求的对应应用程序池的工作进程还处于忙状态,则HTTP.sys将接收到的请求保存在对应应用程序池的请求队列中,直到工作进程空闲为止。此选项即用于设置此应用程序池的请求队列所能容纳的请求数量,默认情况下每个应用程序池的请求队列限制为保留1000个请求,如果超出则向客户端返回503错误,你可以根据需要适当进行修改,最大可以设置为65535。但是如果设置太大则会消耗大量的系统资源 ,而设置太小会导致客户端访问时频繁出现503错误。
启用CPU监视:监视此应用程序池的CPU使用率,默认未启用;如果某个应用程序池占用的CPU利用率过多,那么可以通过配置此选项来限制此应用程序池;
最大CPU使用率(百分比):所设置的应用程序池所能使用的最大CPU使用率;启用CPU监视时默认值为100;
刷新CPU使用率(分钟):刷新CPU使用率的间隔时间;启用CPU监视时默认值为5;
CPU使用率超过最大使用率时执行的操作:当此应用程序池的CPU使用率超过所设置的最大CPU使用率时所进行的操作,启用CPU监视时默认为无,此时IIS只是在事件日志中进行记录而不进行其他操作;如果选择为关闭,那么IIS将关闭此应用程序池中的所有工作进程;
Web园:在Web园中你可以配置此应用程序池所使用的最大工作进程数,默认为1,最大可以设置为4000000; 配置使用多个工作进程可以提高该应用程序池处理请求的性能,但是在设置为使用多个工作进程之前,请考虑以下两点:
每一个工作进程都会消耗系统资源和CPU占用率;太多的工作进程会导致系统资源和CPU利用率的急剧消耗;
每一个工作进程都具有自己的状态数据,如果Web应用程序依赖于工作进程保存状态数据,那么可能不支持使用多个工作进程。
运行状况
在运行状况标签你可以配置应用程序池监视工作进程的运行状况,
[attach]487[/attach]
启用Ping:默认情况下应用程序池配置为每隔30秒Ping工作进程,当工作进程没有进行响应时,则认为此工作进程出现故障并默认配置为关闭此工作进程。你可以修改Ping的时间间隔,但是太长的Ping间隔可能会导致Web服务的中断,而太短的Ping间隔又会消耗更多的系统资源和CPU利用率,因此建议你保留默认配置;
启用快速失败保护:如果Web应用程序代码编写有问题,它可能会导致工作进程持续出现问题。默认情况下应用程序池配置为启用快速失败保护,当工作进程在配置的时间段(默认为5分钟)内发生的失败次数超过了配置的值(默认为5次),则禁用此应用程序池。
启动时间限制:IIS等待属于此应用程序池的工作进程启动的时间,当工作进程启用时间超出此设置值时,IIS会在事件日志中进行记录;
关闭时间限制:当IIS检测到某个工作进程出现故障时,将此工作进程标记为关闭,此选项指定了IIS等待工作进程自动关闭的时间限制,如果超出此时间限制后工作进程尚未关闭,则IIS强行关闭工作进程。
标识
在标识标签,你可以配置工作进程所运行的用户账户。在IIS 5或者当IIS 6运行在IIS 5隔离模式时,工作进程运行在本地系统账户,而运行在工作进程隔离模式下的IIS 6的工作进程运行在网络服务账户下,这降低了系统被攻击的可能性。
你可以配置工作进程运行在预定义的本地系统、本地服务或网络服务账户下,也可以配置为使用某个自定义的用户账户。建议使用默认的网络服务账户;不过如果为了更高的安全性,可以配置使用自定义的用户账户,不过建议你只是将此自定义用户加入到IIS_WPG用户组中,因此IIS_WPG用户组包含了可以启动和运行工作进程的最小权限。
[attach]488[/attach]
什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。 Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。那么如何设置两种工作模式呢? 启动IIS管理器,右击网站,选择“属性”,打开属性对话框(图1)。 [attach]489[/attach] 在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有不同的配置。因为这些应用程序池直接从内核(而非WWW服务)接收它们的请求,所以性能和可靠性得到了增强。要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。 创建应用程序池 在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作进程隔离模式下才能建立应用程序池)。“应用程序池名称”框中,输入新的应用程序池名称。如果在“应用程序池 ID”框中出现的 ID (如:AppPool #1)不是您想要的,可进行重命名。如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。最后单击[确定]。 [attach]490[/attach] 指派应用程序池 在 IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。 在“应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。最后单击[确定]。 [attach]491[/attach] 一起来看看有关应用程序池的一些问题。应用程序池的“属性”对话框有四页——回收,性能,运行状况,标识,如图六所示。在这些选项页中,最引人注目的恐怕就是“回收”页,使用该选项页可以管理工作进程的回收。在工作进程隔离模式中,IIS可以配置成定期重新启动应用程序池中的工作进程,从而更好地管理那些有错误的工作进程。这确保了池中的应用程序运行正常,并且可以恢复丢失的系统资源。为了回收工作进程,失败工作进程接收请求的能力将被限制,直到它处理完存储在请求队列中的所有剩余请求。为了排出当前请求,可以给予进程配置限制。同一命名空间组的替换工作进程在旧的工作进程停止前启动,从而防止服务中断。旧的进程完成其未决的请求,然后正常关闭,或者如果在达到了配置的时间限制、请求数、设置的时间计划,或当达到指定的内存用量限制后仍没有关闭,则明确地终止进程。默认情况下,应用程序池每隔1740分钟(29小时)回收一次。W3SVC根据“运行状况”页的选项来判断应用程序池运行是否正常,包括:每隔指定的时间Ping工作进程,时间按秒计,默认值30秒启动时间限制(工作进程必须在指定的时间内开始)关闭时间限制(工作进程必须在指定的时间内关闭)是否启动快速失败保护(如果在指定的时间段内一定数目的工作进程发生失败,则禁用应用程序池)。另外,ISAPI应用程序(包括ASP.NET和asp.dll)可以声明自己不再适合提供服务,要求回收。 默认情况下,当IIS 6.0回收一个池时,它会使用一种称为overlapped recycle的回收技术。在这种回收模式下,失败的工作进程仍会保持运行状态,同时创建一个新的工作进程。IIS 6.0把新传入的请求传递给新的工作进程,但不拆除老的工作进程,直至老的工作进程处理完它队列中的请求,或者遇到超时错误。在此期间,TCP/IP连接不会丢失,因为有http.sys保持着连接的有效性。当失败的工作进程超时出错时,下一个请求传递给工作进程的请求是新的请求,因此原来保存在进程中的会话信息就会丢失。所有这类回收操作都自动进行,无需管理员干预,而且在大多数情况下,不会造成明显的服务中断现象。如有必要,可以将配置数据属性LogEventOnRecycle的值设置为1,指示W3SVC执行回收操作时生成一条事件日志记录。 对于那些不能以多个实例运行的应用程序,overlapped recycle回收技术可能引起问题。如果遇到这类问题,可以将配置数据属性DissallowOverlappingRotation的值设置成True(1),关闭某个应用程序池回收操作时的进程“重叠”现象。另外,对于失败的工作进程,有时我们可能不想将它拆除,仍旧保留该进程,以便检测和寻找发生问题的根源,这时可以将配置数据属性OrphanActionExe设置成执行文件的名字,使得工作进程成为“孤儿”时执行文件仍保持运行状态。 另一个与应用程序池有关的特性是,IIS 6.0允许将应用程序池配置成一个Web园(Web Garden)。要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web网站运行着相同的应用程序,如果IIS 5.0能够自动按照圆形循环的模式将请求依次发送给这些功能上等价、实际上分离的Web网站,将负载分离到三个不同的进程,就可以构成一个小型的Web农场(Web Farm)——这就是Web园。 在IIS 6.0的Web园中,我们不必创建额外的Web网站,只要指定用于某个应用程序池的工作进程的数量就可以了。具体的配置步骤是:打开应用程序池的“属性”对话框,转到“性能”页,在“Web园”下面的“最大工作进程数”输入框中输入进程数量,如图八。当服务器的负载较小,不需要额外的工作进程时,IIS 6.0在一定的时间后(默认20分钟,可配置)自动缩减实际的工作进程数量如果负载变大,需要额外的工作进程,IIS 6.0再次增加工作进程数量。这一切操作都自动进行,不需要管理员干预。 [attach]492[/attach] 图6 两个新的配置数据属性——SMPAffinitze和SMPAffinitzeCPUMask——允许配置为工作进程指派的特定处理器:将SMPAffinitized属性设置成true表示应该把分配给应用程序池的特定工作进程指派给特定的CPU,SMPProcessorAffinityMask属性用来配置十六进制的处理器掩码,该十六进制处理器掩码指出应用程序池中的工作进程应该绑定到哪个CPU。 指定标识应用程序池设置 这些回收应用程序池设置是在应用程序池的属性对话框的“标识”选项卡中指定的。设置标识应用程序池设置
[attach]493[/attach] 用户名和密码“用户名”和“密码”分别是等效于 username 和 password ASP.NET 进程模型设置的应用程序池设置。这两种设置结合使用来使辅助进程使用指定的 Windows 标识运行。默认情况下,辅助进程使用“网络服务”(Network Service) 帐户。但是,如果选择了“可配置”单选按钮并且“用户名”和“密码”文本框包含有效值,则辅助进程将使用指定的 Windows 标识。此外,必须将 Windows 标识添加到 IIS_WPG 用户组。 将 Windows 标识添加到 IIS_WPG 用户组
设置健全应用程序池设置
[attach]494[/attach] 启用 Ping“启用 ping”是等效于 pingFrequency ASP.NET 进程模型设置的应用程序池设置。它指定 ASP.NET ISAPI 检查辅助进程是否存在的时间间隔。如果没有辅助进程,则重新启动辅助进程。默认情况下“启用 ping”是启用的而且设置为 30 秒。通过更改数值调节框中的值,可以指定一个不同的时间间隔。若要禁用 ping 操作,请清除“启用 ping”复选框。 关闭时间限制“关闭时间限制”是等效于 shutDownTimeout ASP.NET 进程模型设置的应用程序池设置。它指定提供给辅助进程的用来正常关闭的时间长度。如果辅助进程在指定的时间长度内没有关闭,则 ASP.NET ISAPI 将结束该辅助进程。默认情况下“关闭时间限制”设置为 90 秒。通过更改数值调节框中的值,可以指定一个不同的时间限制。 通过性能应用程序池设置,可以控制辅助进程的操作。以下几节描述如何指定性能应用程序池设置。 指定性能应用程序池设置性能应用程序池设置是在应用程序池的属性对话框的“性能”选项卡中指定的。 设置性能应用程序池设置
[attach]495[/attach] 网络园“网络园”是等效于 webGarden 和 cpuMask ASP.NET 进程模型设置的应用程序池设置。若要启用“网络园”,请将“辅助进程的最大数目”设置为高于 1 的值。该值还为应用程序池确定最大进程数。 因为网络园支持使用多个进程,所以,每一进程在应用程序状态、进程内会话状态、缓存和静态数据方面都有其自己的副本。网络园不应用于所有应用程序,尤其在这些应用程序需要维护状态的情况下。在决定网络园模式是否适用前,一定要检查应用程序的性能。 在使用网络园时,理解会话状态和循环工作的方式是十分重要的。考虑其他应用程序池设置影响应用程序的方式也是十分重要的。 使用辅助进程隔离模式的网络园中的会话状态在使用会话状态时,请注意,辅助进程隔离模式不支持将请求传送回引起请求返回的进程。当一个应用程序运行在处于 ASP 会话状态或应用程序状态的网络园中时,该应用程序需要将其请求发送回发起的进程。在使用 IIS 6.0 应用程序池时,要确保应用程序让一个连接总保持为打开状态,以便其请求被发送回适当的进程。如果此连接没有保持为打开状态,则请求将被发送到为网络园提供服务的下一可用的辅助进程。 使用辅助进程隔离模式的网络园中的循环循环是一种用于应用程序的负载平衡方法。在每个请求到达时,它会自动被发送到下一可用进程。例如,如果网络园具有 4 个进程,则请求被发送到进程 0、1、2 和 3,并依照这一顺序发送。然后为其他请求重复该循环。 使用辅助进程隔离模式的网络园中的应用程序池参数某些应用程序池设置具有特定于网络园的行为。下表总结了这些行为。
空闲超时“空闲超时”是等效于 idleTimeout ASP.NET 进程模型设置的应用程序池设置。它指定辅助进程或应用程序池在开始处于不活动状态后,过多长时间将其关闭。默认情况“空闲超时”是启用的而且设置为 20 分钟。通过更改数值调节框中的值,可以指定一个不同的时间限制。若要禁用“空闲超时”,请清除该复选框。 请求队列限制“请求队列限制”是等效于 restartQueueLimit ASP.NET 进程模型设置的应用程序池设置。它指定在异常终止后等待辅助进程启动时在 ASP.NET ISAPI 中排队的请求的最大数目。默认情况下“请求队列限制”是启用的而且设置为 1000 个请求。通过更改数值调节框中的值,可以对排队的请求的数目指定不同的限制。若要禁用“请求队列限制”,请清除该复选框。 通过回收应用程序池设置,可以控制如何恢复系统资源。以下几节介绍如何指定回收应用程序池设置。 指定回收应用程序池设置回收应用程序池设置是在应用程序池的属性对话框的“回收”选项卡中指定的。 设置回收应用程序池设置
[attach]496[/attach] 内存回收“内存回收”是等效于 memoryLimit ASP.NET 进程模型设置的应用程序池设置。它指定辅助进程可以使用的最大内存量。如果辅助进程超出了这一数量,将创建新的进程来替换它,并且当前所有请求都被重新分配给该新进程。在 memoryLimit ASP.NET 进程模型设置与“内存回收”应用程序池设置之间有两个重要的区别:
回收多个辅助进程“回收多个辅助进程”是等效于 timeout ASP.NET 进程模型设置的应用程序池设置。它指定回收辅助进程或应用程序池的时间间隔。默认情况下“回收多个辅助进程”是启用的而且设置为 120 分钟。通过更改数值调节框中的值,可以指定一个不同的时间间隔。若要禁用“回收多个辅助进程”,请清除该复选框。 |
欢迎光临 源于生活 (http://bbs.vingoo.info/) | Powered by Discuz! X3.1 |