应用程式池是将一个或多个应用程式连结到一个或多个工作进程集合的配置。因为应用程式池中的应用程式与其他应用程式被工作进程边界分隔,所以某个应用程式池中的应用程式不会受到其他应用程式池中应用程式所产生的问题的影响。
基本介绍
- 中文名:iis应用程式池
- 工作进程:默认值为35000
- 虚拟记忆体:500 M
- 使用的记忆体:192 M
查看与配置
配置应用程式池属性
在IIS管理控制台中展开应用程式池资料夹,然后右击对应的应用程式池,点击属性,你可以在应用程式池的属性中进行以下:
回收
在回收标籤,你可以设定工作进程的回收方式:
回收工作进程(分钟):在工作进程运行多少分钟后回收工作进程,默认启用,并且设定为1740分钟(29小时);
回收工作进程(请求数目):在工作进程处理多少 个HTTP请求后终止此工作进程,默认禁用,如果启用则默认值为35000;
在下列时间回收工作进程:在指定的时间回收工作进程,默认禁用;如需启用,勾选后点击添加按钮添加回收的时间即可,使用24小时制定义回收的时间;
消耗太多记忆体时回收工作进程:
最大虚拟记忆体(兆):当工作进程使用的虚拟记忆体达到设定的值时回收工作进程,默认禁用,如果启用则默认值为500 M;建议设定为不超过虚拟记忆体总数的70%;
最大使用的记忆体(兆):当工作进程使用的物理记忆体达到设定的值时回收工作进程,默认禁用,如果启用则默认值为192 M;建议设定为不超过物理记忆体总数的60%;
另外需要注意的是,应用程式池具有以下两种工作进程回收方式,不过这两种回收方式均不会造成Web服务的中断:
默认情况下,应用程式池使用重叠回收方式。在这种方式下,当应用程式池要关闭某个工作进程时,会先创建一个工作进程,直到新的工作进程成功创建后才关闭旧的工作进程;
应用程式池也可以先关闭旧的工作进程,然后再创建新的工作进程。
如果Web应用程式不支持多实例运行,那幺你必须配置应用程式池禁止使用重叠回收方式。此配置无法在IIS管理控制台中进行修改,只能通过在metabase.xml中修改对应应用程式池的DisallowOverlappingRotation metabase属性为true进行。
性能
在性能标籤你可以设定工作进程的运行方式:
在空闲此段时间后关闭工作进程(分钟):当工作进程空闲多少分钟后关闭此工作进程,这降低了空闲工作进程对系统资源和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应用程式依赖于工作进程保存状态数据,那幺可能不支持使用多个工作进程。
运行状况
在运行状况标籤你可以配置应用程式池监视工作进程的运行状况,
启用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用户组包含了可以启动和运行工作进程的最小许可权。
创建应用程式池
要新建应用程式池,在IIS管理控制台中右击应用程式池资料夹,指向新建,选择应用程式池;
然后在弹出的添加新应用程式池对话框,在应用程式池ID栏输入应用程式池名,然后选择使用默认设定还是继承现有的应用程式池设定,再点击确定即可;
分配Web站点到应用程式池中
在IIS管理控制台中展开网站资料夹,右击对应的网站,然后选择属性,在弹出的网站属性对话框上,点击主目录标籤,然后在应用程式池栏选择不同的应用程式池即可,默认情况下所有网站所使用的应用程式均名为默认应用程式,如果要想此网站使用不同的应用程式名,则在应用程式名栏修改即可,例如在此我就修改为winsvr,这主要是便于查看,然后点击确定即可,
服务停止的解决方法
一、2003应用程式池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。
1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。(所以现在的IIS假死与这个关係不是很大)
2:从IIS6.0开始CPU资源都在套用池里面限制了,不象以前的IIS.5。所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个套用池是禁用的,上面出现一个红叉。你滑鼠右键启动网站又会自动恢复。 这个原因:大概是以下几个因数造成的。(1):你限制了套用池的资源,限制得太小 比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那幺5分钟后他就自动死了,手工默认建立的套用池默认是超过资源不操作。出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程式有BUG占用资源厉害了的,伺服器都会被拉死,你可能都无法操作伺服器。)2:在超过资源那里选择关闭,这个关闭默认是失败5次,90秒内恢复,一般默认就可。网站能自动恢复,这个关闭:不是永久关闭,意思是超过资源关闭,然后在某时间内自动恢复池。不操作就是不恢复,这个是很多人的误区。(2):记忆体限制 在IIS6.0套用池上面有虚拟记忆体和最大记忆体限制,如果你设定了这个。那幺网站访问量大了 也会出现假死,所以不建议设定这里。默认就可。
3:就是伺服器自身记忆体太小,网站运行当然需要使用到记忆体了,当记忆体不够的时候套用池也会死掉变成禁用。那幺只有等记忆体全部释放出来才能恢复套用池了。出现这个情况:那幺你就要考虑加记忆体或者检查到底是什幺程式占用了记忆体了。比如MSSQL资料库,这个可是吃记忆体得大户啊,最好别和WEB伺服器同时一个伺服器上。很多人用1G记忆体做 2003系统,2003NET结构是很占用记忆体的,所以做伺服器选2003还得把记忆体加到2G或更高才好。 记忆体不够上面 2点讲到的,是没办法操作了,也无法自动恢复。
4:就是ACCESS资料库太大或查询太多,这个也会出现把IIS拉死,解决方法;修复ACCESS资料库,或儘量少用ACCESS资料库,升级至sqlserver资料库;或者在技术方面革新,像现在有些网站系统,风讯、动易等cms;pjblog、zblog等部落格程式,都支持生成静态功能.
5:不同网站用不同套用池:根据你自己实际情况而定,站点大的最好独立一个套用池,限制他的资源超过了自动回收,看上面(1)讲到的,这样就不影响其他站点。中型站点:多个网站共用一个套用池,比如5个站点用一个池,设定他资源时间等等。这样他们就算超资源了也不影响其他套用池的网站。
6:设定回收时间:很多人以为设定回收池越短越好,其实是错误的,每次回收当然是把记忆体回收回来了,但加重了一次伺服器的负担,当伺服器比较繁忙的时候,有可能导致其他套用池死。所以建议设定共1000就行了。其他独立池按照他网站流量而设定 可以设定600 也行,共用的不建议设定太短。
7:网站后台过不了多久自动退出又要重新登入:这个情况就是你设定回收时间太短了,按照 6点设定吧。 不要设定什幺20分、30分这样的,这样不好的。另外一个原因就是和站的回响设定时间有关,设定得稍长些。
8:windows 2003系统iis6访问本机的站点时提示“Service Unavailable”;查看iis的应用程式池,状况提示为:未指定错误,同时应用程式池自动停止运行;用事件查看器查看系统错误日誌,发现如下提示:-----------------------------------应用程式-特定 许可权设定未将 COM 伺服器应用程式(CLSID 为{A9E69610-B80D-11D0-B9B9-00A0C922E750})的 本地 激活 许可权授予用户 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用组件服务管理工具修改此安全许可权。解决方法,给NETWORK SERVICE 加上访问iis服务的许可权,具体方法如下:点击“开始”-“控制台”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项,选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活许可权”中编辑“自定义”,添加帐号“NETWORK SERVICE ”,给该帐号赋予“本地启动”和“本地激活”的许可权,重新启动IIS之后再访问同一站点,则一切正常。
9:重启IIS中的特定应用程式池命令和自动重启的方法在作业系统是Windows server 2003 SP1+的情况下,可以用以下命令部分重启IIS应用程式池: cscript.exe c:\windows\system32\iisapp.vbs /a "DefaultAppPool" 其中/a 代表alternatively,"DefaultAppPool"代表应用程式池的实例名。如果要设定自动重启这个应用程式池,可以尝试放在批处理中,用计画任务调用此批处理即可。很多人觉得计画任务不安全,都要禁掉,事实上,计画任务的不安全是建立在其它方面不安全的前提上的,如果由于其它方面的不安全,被放入执行程式,计画任务执行,这和计画任务没有直接关係。当然,关掉,是会减少一些安全隐患,这是不错。