三种回收iis应用程序池方法

合集下载

什么是IIS应用程序池以及应用程序池详解

什么是IIS应用程序池以及应用程序池详解

什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。

因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。

工作进程隔离模式防止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。

那么如何设置两种工作模式呢?启动IIS管理器,右击网站,选择“属性”,打开属性对话框(图1)。

在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都可以有不同的配置。

因为这些应用程序池直接从内核(而非WWW 服务)接收它们的请求,所以性能和可靠性得到了增强。

要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。

创建应用程序池在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作进程隔离模式下才能建立应用程序池)。

“应用程序池名称”框中,输入新的应用程序池名称。

如果在“应用程序池ID”框中出现的ID (如:AppPool #1)不是您想要的,可进行重命名。

如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。

最后单击[确定]。

指派应用程序池在IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。

单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。

如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。

在“应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。

如何在IIS里设置内存回收

如何在IIS里设置内存回收

如何在IIS 里设置内存回收:里设置内存回收:
由于.net 对内存的特殊管理机制,导致有时内存回收不及时,这时就需要我们在IIS 里人工设置下内存回收。

设置下内存回收。

1、 首先我们要给系统单独一个应用程序池首先我们要给系统单独一个应用程序池
点击右键-新建应用程序池AppPool #1,默认确定即可。

,默认确定即可。

然后在
右键-属性属性
这两项打上√,然后根据你的服务器内存大小,然后根据你的服务器内存大小,来设置后面的数值,来设置后面的数值,来设置后面的数值,这样就完成了内存回收这样就完成了内存回收的设置。

的设置。

2、然后在IIS 网站中网站中
选择你的网站,如huaruib2b-右键-属性-主目录主目录
应用程序池即可。

在应用程序池-这里选你刚开始建的AppPool #1应用程序池即可。

消耗太多内存时回收工作进程

消耗太多内存时回收工作进程

消耗太多内存时回收⼯作进程消耗太多内存时回收⼯作进程:最⼤虚拟内存(兆):当⼯作进程使⽤的虚拟内存达到设置的值时回收⼯作进程,默认禁⽤,如果启⽤则默认值为500 M;建议设置为不超过虚拟内存总数的70%;最⼤使⽤的内存(兆):当⼯作进程使⽤的物理内存达到设置的值时回收⼯作进程,默认禁⽤,如果启⽤则默认值为192 M;建议设置为不超过物理内存总数的60%;另外需要注意的是,应⽤程序池具有以下两种⼯作进程回收⽅式,不过这两种回收⽅式均不会造成Web服务的中断:在空闲此段时间后关闭⼯作进程(分钟):当⼯作进程空闲多少分钟后关闭此⼯作进程,这降低了空闲⼯作进程对系统资源和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应⽤程序依赖于⼯作进程保存状态数据,那么可能不⽀持使⽤多个⼯作进程。

IIS应用程序池设置指南

IIS应用程序池设置指南

IIS应用程序池设置指南(佳人减肥网推荐)通过回收应用程序池设置,可以控制如何恢复系统资源。

以下几节介绍如何指定回收应用程序池设置。

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

设置回收应用程序池设置打开 IIS 管理控制台,单击加号展开本地计算机。

单击加号展开“应用程序池”文件夹。

右击适当的应用程序池,然后单击“属性”。

出现应用程序池的属性对话框。

单击“回收”选项卡,然后设置适当的应用程序池设置。

应用程序池“属性”对话框的“回收”选项卡内存回收“内存回收”是等效于memoryLimit 进程模型设置的应用程序池设置。

它指定辅助进程可以使用的最大内存量。

如果辅助进程超出了这一数量,将创建新的进程来替换它,并且当前所有请求都被重新分配给该新进程。

在memoryLimit 进程模型设置与“内存回收”应用程序池设置之间有两个重要的区别:memoryLimit 进程模型设置只使用物理内存。

“内存回收”应用程序池设置允许您为物理内存和虚拟内存分别指定限制。

由于公共语言运行库的垃圾回收器工作的方式,物理内存(或物理内存和虚拟内存的组合)常用于 应用程序。

虚拟内存常用于将堆划分为多个片断的传统本机应用程序。

“内存回收”应用程序池设置是按兆字节 (MB) 指定的,而不是按相对于总内存的百分比指定的。

回收辅助进程“回收辅助进程”是等效于requestLimit 进程模型设置的应用程序池设置。

它指定导致辅助进程或应用程序池被回收的请求的数目。

默认情况下“回收辅助进程”是禁用的。

若要启用“回收辅助进程”,请选取该复选框并在数值调节框中指定请求数。

回收多个辅助进程“回收多个辅助进程”是等效于timeout 进程模型设置的应用程序池设置。

它指定回收辅助进程或应用程序池的时间间隔。

默认情况下“回收多个辅助进程”是启用的而且设置为 120 分钟。

通过更改数值调节框中的值,可以指定一个不同的时间间隔。

IIS应用程序池配置详解及优化

IIS应用程序池配置详解及优化

IIS应⽤程序池配置详解及优化参数说明1.常规属性名称属性详解NET CLR 版本配置应⽤程序池,以加载特定版本的 .NET CLR。

选定的 CLR版本应与应⽤程序所使⽤的相应版本的 .NET Framework 对应。

选择“⽆托管代码”将导致所有的 请求失败。

队列长度HTTP.sys 将针对应⽤程序池排队的最⼤请求数。

如果队列已满,新请求将收到 503“服务不可⽤”的响应。

默认队列长度设置是1000,范围在10-65535 之间。

名称应⽤程序池名称是应⽤程序池的唯⼀标识符。

启动模式将应⽤程序池配置为在按需运⾏模式或始终运⾏模式下运⾏。

启⽤ 32 位应⽤程序如果针对 64 位操作系统上的应⽤程序池将该属性设为 True,则为应⽤程序池提供服务的⼯作进程将处于 WOW64 (Windows on Windows64)模式。

WOW64模式下的进程是仅加载 32 位应⽤程序的 32 位进程。

托管管道模式将 配置成作为 ISAPI 扩展并以经典模式来运⾏。

在后⼀种情况下,托管代码集成到请求处理管道中。

Classic模式:指的是与IIS 6或者之前版本保持兼容的⼀种模式,⼀个典型问题就是,在处理这种动态⽹站的时候,它是通过⼀个所谓的ISAPI程序,作为插件的⽅式来⼯作的。

针对不同的动态应⽤程序(例如ASP,PHP等),会需要不同的ISAPI。

Integrated模式:这种全新的模式,允许我们将更好地与IIS集成,甚⾄允许我们在中编写⼀些功能(例如Module)来改变IIS的⾏为(扩展)。

集成的好处是,不再通过ISAPI的⽅式,提⾼了速度和稳定性。

⾄于扩展,则可以使得我们对于IIS,以及其他类型的请求有更多的控制。

2.CUP属性名称属性详解处理器关联掩码强制此应⽤程序池的⼯作进程在特定 CPU 上运⾏的⼗六进制掩码。

如果启⽤了处理器关联,则值 0 将导致错误。

处理器关联掩码(64位选项)为64位计算机制定强制此应⽤程序池的⼯作进程在特定 CPU 上运⾏的⾼顺序 DWORD ⼗六进制掩码。

如何设置使IIS应用程序池使用ASP.Net3.5而不是2.0

如何设置使IIS应用程序池使用ASP.Net3.5而不是2.0

一个被很多人提起过的问题:我应当如何告诉我的IIS 应用程序或者虚拟目录使用 3.5 而不是 2.0 呢?人们一般会进入IIS6 或者IIS7 并且建立一个应用程序池,然后查看属性,接着打开下拉列表并期望有 .NET 3.0 和 .NET 3.5 两个选项在其中,却发现根本没有,于是不满,但是这是理所当然的。

现在给出这个问题的解释,并希望这不会再使人们觉得迷惑了。

营销策略我们都希望每个主要版本的更新都意味着新的CLR,但事实上并不如此。

.NET 2.0.NET 的核心在%windir%\\Framework\v2.0.50727. 这里就是GAC (Global Assembly Cache) 所有的类库和编译器的所在地。

当有人问起 .Net 在哪里时我常常从这里开始指出.NET 3.0.NET 3.0 并不是新的编译器以及CLR。

相反,这是三大类库:WCF (Windows Communication Foundation née Indigo),WPF (Windows Presentation Foundation née Avalon) 以及Windows Workflow (WF)。

请记住:安装了.NET 3.0 并不会像你恐惧的那样各个方面都大幅改变了你的系统。

你的 2.0 程序仍然会在安装了3.0的系统上好好地运行。

.Net 3.0 使用2.0 的编译器以及2.0 的CLR。

尝试一下。

如果你进入Visual Studio 进入File | New | Project (or Web Site),注意右上方的下拉列表。

选择".NET Framework 3.0" 并且新建一个"WCF Service",看看web.config 文件。

注意这是很方便的,并且开起来跟 .NET 2.0 差不多,只是增加了小部分东西。

基本上,请记住,Framework 版本不等于CLR 版本。

IIS应用程序池自动停止 关闭 假死 自动重启以及iis权限等解决办法

IIS无故自动关闭停止已经不是罕见的事情了,处理这个问题是让我很头痛的事情,遇到这个问题不太可能一次性解决,多数都是用排除法一个个测试排除错误,最终找到那个错误命令。

最近我的服务器遇到了这个问题,我很无奈,我很急,客户也很着急,每天IIS都要自动停止2次以上,我总是怀疑是进程池问题,此文章是针对IIS进程池解决办法,如果你遇到了死循环代码,或者其他非进程池,那此文章不太适合你了网络上有关iis的问题和相关解决方案,多不胜搜,但很多都比较零散,没有系统的解决方案;另外,有些解决方法,似是而非,不能找到其中的问题关键点,本人平时对于服务器的应用上也有点实践,因此,今天稍稍总结一点平时遇到地问题和解决方法,特别是对iis的特殊权限引起问题、iis应用程序池假死问题和比较罕见的iis重启命令和自动重启办法。

其它相关问题,继续关注本博。

一、2003应用程序池自动死了,不能恢复了,一直出现 Service Unavailable 常见方法如下。

1:没有打SP1补丁的时候会出现这个IIS6.0假死问题,但现在微软都在自动更新里面出补丁了,一般你打好最新补丁后是不会出现此问题了。

(所以现在的IIS假死与这个关系不是很大)2:从 IIS6.0开始CPU资源都在应用池里面限制了,不象以前的IIS.5。

所以假死的池的缘故就是池被拉死,你在网站打不开的时候可以看到你的某个应用池是禁用的,上面出现一个红叉。

你鼠标右键启动网站又会自动恢复。

这个原因:大概是以下几个因数造成的。

(1):你限制了应用池的资源,限制得太小比如:50这样或更少更多一点,这个时候如果你这个池下面的网站占用CPU太高,比如超过50% 那么5分钟后他就自动死了,手工默认建立的应用池默认是超过资源不操作。

出现上面这个情况解决方法:1:不限制CPU资源,(这个是不可取的,不限制资源,有的程序有BUG占用资源厉害了的,服务器都会被拉死,你可能都无法操作服务器。

错误系统日志:应用程序池

错误系统⽇志:应⽤程序池 DefaultAppPool错误系统⽇志:为应⽤程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制。

进程 ID 是 '1003'。

有关更多信息,请参阅在/fwlink/events.asp ;的帮助和⽀持中⼼。

注:ID号,是变化的,可以为任何数据如3124,每次出现这种错误,ID都是不⼀样的!服务器表现:IIS6.0假死机,页⾯打不开,ASP页⾯,⽆法执⾏!⽹站打不开解决⽅法:⽬前IIS服务器应⽤程序池设置如下:右击应⽤程序池DefaultAppPool,选取属性:⼀、回收1、回收⼯作进程(分钟):选中,值为17402、回收⼯作进程(请求数⽬):不选(原先设置为35000)3、在下列时间回收⼯作进程:不填4、消耗太多内存时回收⼯作进程:全不选。

(2、3、4项可能避免了在访问量⾼的时候强制回收进程可能引发的服务器响应问题,猜的^-^)服务器内存够⼤,豁出去了给它⽤。

⼆、性能只选中空闲超时20分钟。

其他都不选。

WEB园最⼤⼯作进程数为1(默认)。

原来的请求队列限制为4000,现在⽆限制。

三、运⾏状况前两项都起⽤,是原来的默认设置。

启动时间限制90秒,关闭时间限制180秒。

“关闭时间限制180秒”是必须的,因为进程关闭的时间,就是在这⼉设置,原来为90秒限制,是默认值,如果进程关闭时间超过90秒,则认为超时,从⽽出现:进程关闭时间超过了限制⽇志,所以,适当延长这个时间,可以避免这种错误!临时解决办法。

适合WIN2003系统(IIS6),将每个应⽤程序设置不同的“应⽤程序池”即可。

⽐如:新闻系统⽤⼀个单独的应⽤程序池、论坛再⽤⼀个单独的应⽤程序池、下载站点再⽤⼀个应⽤程序池。

通过以上的⽅法,⽬前服务器还算稳定,偶尔(⼀般是N天)“回收”⼀下有问题的“应⽤程序池”就OK了。

IIS使用指南

IIS使用指南之一:安装和配置IIS建议你在阅读本文之前,先阅读IIS使用指南之一:IIS 6 新特性一文,只有当你了解IIS 6的新特性后,才能更好的使用它。

如非特别说明,本文中所有涉及的IIS均指Windows Server 2003中提供的I IS 6。

安装IIS在安装IIS之前,你需要考虑如何增强IIS服务器的安全性,首先的一点就是减少IIS服务器的攻击面。

在IIS服务器上你首先应该安全配置Windows服务器;使用NTFS文件格式;尽可能少的安装其他网络服务;停止不相关的服务;并且只是安装需要的IIS组件。

安装IIS的过程很简单,点击开始,指向控制面板,选择添加或删除程序,然后点击添加/删除Windo ws组件,在弹出的Windows组件向导对话框,勾选应用程序服务器下的Internet信息服务(IIS)即可。

需要注意的是,从安全性考虑,在Windows Server 2003中安装IIS时,默认只会安装IIS的部分组件而不是全部,安装的组件如下表所示:默认安装的IIS组件说明默认安装的万维网服务组件说明如果你只是想提供Web服务,那么IIS安装的默认组件已经完全满足你的需求。

在此我仅安装Web服务组件,所以勾选Internet信息服务(IIS)后依次点击确定,然后在Windows组件向导对话框上点击下一步,此时Windows服务器开始IIS组件的安装,安装过程中可能提示你插入安装光盘,当安装完成后IIS就安装好了。

配置IIS通常情况下对于IIS本身我们需要做的配置不多,主要集中在以下几个方面:配置IIS的应用程序隔离模式;∙配置HTTP压缩;∙配置MIME类型;∙配置Web服务扩展;∙配置应用程序池。

配置IIS的应用程序隔离模式我们在IIS使用指南之一:IIS 6 新特性中介绍过,默认情况下IIS 6工作在工作进程隔离模式下,如果你的Web应用程序不能兼容此模式,那么你需要将IIS 6配置为工作在IIS 5 隔离模式下,配置过程如下:点击开始,指向控制面板,然后选择Internet信息服务(IIS)管理器,在弹出的Internet信息服务(IIS)管理器上右击网站文件夹,选择属性,然后在弹出的网站属性对话框上点击服务标签,在隔离模式下勾选以IIS 5.0隔离模式运行WWW服务即可,需要重启整个IIS服务。

.Net内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结

.Net内存溢出(System.OutOfMemoryException)的常见情况和处理⽅式总结在什么情况下会出现OutOfMemonryException呢? 在我们试图新建⼀个对象时,⽽垃圾收集器⼜找不到任何可⽤内存时被抛出,这种情况下我们是可以捕获该异常的; 另⼀种情况是,CLR需要内存时,⽽却系统却不能提供,也会抛出该异常. 但此时,我们的应⽤程序是不能捕获该错误的.内存溢出(OutOfMemoryException)的调试分析32位操作系统的寻址空间是4G,其中有2G被操作系统占⽤,也就是说留给⽤户进程的内存只有2G(其中还要扣除程序加载时映像占⽤的部分空间,⼀般只有1.6G~1.8G左右可以使⽤)。

如果进程运⾏中需要申请内存,⽽操作系统⽆法为其分配内存空间,则会产⽣内存不⾜的异常,在.net中为System.OutOfMemoryException(The exception that is thrown when there is not enough memory tocontinue the execution of a program.)。

虽然最终的表现都为OutOfMemoryException,但其产⽣的原因可能是不⼀样的,动⼿解决此问题之前需要先对进程当前内存的使⽤状态进⾏分析,找出正确的原因,才能对症下药。

下⾯分享⼀下调试此类问题的⼀些⼼得。

iis应⽤程序池内存溢出错误 System.OutOfMemoryException在 Web服务器上,所能够⽤到的内存,通常不会等同于所有的内存数量。

在machine.config配置⽂件中,配置节<processModel>中有⼀个属性“memoryLimit”,这个属性的值是⼀个百分值,默认为“60”,即指定了进程(在任务管理器中⼤家就可以看到的进程,IIS5中为aspnet_wp,IIS6中为w3wp)能够使⽤所有物理内存的60%。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档