IIS6应用程序池配置研究

  当网站无法访问的时候,手动回收应用程序池,即可恢复,不过手动恢复的话,毕竟很麻烦,你不能一天都盯着这个网站看吧?问题出在应用程序池的话,那我们就从应用程序池的配置下手来看是否能解决问题。

1、首先建议每个网站分别建立一个应用程序池,一个应用程序池将对应不同的w3wp.exe进程,在“命令提示符”下使用iisapp命令 可以察看网站对应的w3wp.exe的pid值,方便查找出问题的进程。

   2、应用程序池的配置
      个人意见觉得在应用程序池的属性窗口中,“回收”和“运行状况”2个选项卡的配置比较重要。

2.1、回收 选项卡

    1、回收工作进程(分钟):在工作进程运行多少分钟后回收工作进程,默认启用,并且设置为1740分钟(29小时);
           2、回收工作进程(请求数目):在工作进程处理多少 个HTTP请求后终止此工作进程,默认禁用,如果启用则默认值为35000;
           3、在下列时间回收工作进程:在指定的时间回收工作进程,默认禁用;如需启用,勾选后点击添加按钮添加回收的时间即可,使用24小时制定义回收的时间;
          4、消耗太多内存时回收工作进程:
               最大虚拟内存(兆):当工作进程使用的虚拟内存达到设置的值时回收工作进程,默认禁用,如果启用则默认值为500 M;建议设置为不超过虚拟内存总数的70%;
               最大使用的内存(兆):当工作进程使用的物理内存达到设置的值时回收工作进程,默认禁用,如果启用则默认值为192 M;建议设置为不超过物理内存总数的60%;

2.2、性能

      1、在空闲此段时间后关闭工作进程(分钟):当工作进程空闲多少分钟后关闭此工作进程,这降低了空闲工作进程对系统资源和CPU性能的消耗,默认启用并且设置为20分钟; 2 \; X7 j" i# s5 k+ X

      2、核心请求队列限制为(请求次数):当 HTTP.sys接收到某个客户端发送的HTTP请求时,如果处理此请求的对应应用程序池的工作进程还处于忙状态,则HTTP.sys将接收到的请求保存 在对应应用程序池的请求队列中,直到工作进程空闲为止。此选项即用于设置此应用程序池的请求队列所能容纳的请求数量,默认情况下每个应用程序池的请求队列 限制为保留1000个请求,如果超出则向客户端返回503错误,你可以根据需要适当进行修改,最大可以设置为65535。但是如果设置太大则会消耗大量的 系统资源 ,而设置太小会导致客户端访问时频繁出现503错误。

         

2.3、运行状况

1、启用Ping:默认情况下应用程序池配置为每隔30 秒Ping工作进程,当工作进程没有进行响应时,则认为此工作进程出现故障并默认配置为关闭此工作进程。你可以修改Ping的时间间隔,但是太长的 Ping间隔可能会导致Web服务的中断,而太短的Ping间隔又会消耗更多的系统资源和CPU利用率,因此建议你保留默认配置;
        2、启用快速失败保护:如果Web应用程序代码编写有问题,它可能会导致工作进程持续出现问题。默认情况下应用程序池配置为启用快速失败保护,当工作进程在配置的时间段(默认为5分钟)内发生的失败次数超过了配置的值(默认为5次),则禁用此应用程序池。
        3、启动时间限制:IIS等待属于此应用程序池的工作进程启动的时间,当工作进程启用时间超出此设置值时,IIS会在事件日志中进行记录;
        4、关闭时间限制:当IIS检测到某个工作进程出现故障时,将此工作进程标记为关闭,此选项指定了IIS等待工作进程自动关闭的时间限制,如果超出此时间限制后工作进程尚未关闭,则IIS强行关闭工作进程。

不同的情况下有不同的设置方法,http://hezunquan.blog.163.com/blog/static/1051759200910655032475/这篇博文里给出的方法不失为一些很好的解决方案,但是对于我的服务器而言,不能解决问题,我的网站由于有一个投票系统,有人刷票,这种刷票行为是不定时不确定的,来的时候大量访问,造成当机,不刷的时候服务器没什么流量,所以它所提到的方法不是很适合我的服务器。

下面先说一下几个选项的工作原理:

应用程序池具有以下两种工作进程回收方式,不过这两种回收方式均不会造成Web服务的中断:
       默认情况下,应用程序池使用重叠回收方式。在这种方式下,当应用程序池要关闭某个工作进程时,会先创建一个工作进程,直到新的工作进程成功创建后才关闭旧的工作进程;
应用程序池也可以先关闭旧的工作进程,然后再创建新的工作进程。
如果Web 应用程序不支持多实例运行,那么你必须配置应用程序池禁止使用重叠回收方式。此配置无法在IIS管理控制台中进行修改,只能通过在 metabase.xml中修改对应应用程序池的DisallowOverlappingRotation metabase 属性为true进行。

“回收”动作将关闭之前的w3wp.exe进程,释放内存,造成客户端连接session的丢失,需要登陆的访问用户将退出当前连接重新登陆,因此我们不能频繁的进行“回收”操作,以免造成频繁登陆的麻烦;

如果没有“回收”动作,内存将得不到释放,对于占内存的网站程序而言,就会出现我前面文章中提到的w3wp.exe占用CPU达100%的问题,同时另外一个现象则是连接数过多,造成IIS服务假死,网站无法访问的情况。

因此我们在IIS的问题上应该根据实际问题进行处理,对于w3wp.exe造成CPU占用100%,我们可以在“回收”中限制第4项,而对于IIS假死经常当机则可以在1、2、3项中进行设置;

具体配置案例:

我的一个网站最近时不时的无法访问,有的时候是500内部错误,有的时候是访问半天没反应,查看服务器上的事件日志发现是提示“为应用程序池 'AppPool #1' 提供服务的进程关闭时间超过了限制”,手动“回收”该网站对应的应用程序池,恢复正常。

单独设置一个应用程序池给这个服务网站,对应用程序池进行针对我的服务器流量的特点进行设置。

一、回收

1、回收工作进程(分钟): 5分钟,对于大量刷票产生的进程及时结束;

2、回收工作进程(请求数目):(不选) 如果可以统计工作进程请求数目,可以使用,不过似乎比较难统计的。

3、在下列时间回收工作进程:我设定一个凌晨3点,其实这个时候访问少了,回收进程也没多大意义了。

4、消耗太多内存时回收工作进程:(不选)在w3we.exe占用高CPU的时候可以使用。

二、性能

   空闲超时:5分钟当“回收”中的1回收工作进程的时间设置比这个值要小的时候,将被更改为系统默认值为:回收工作进程(分钟)=60分钟, 空闲超时=60分钟

   请求队列限制:1000(默认)

   WEB园最大工作进程数为1(默认)。这个数值的更改容易造成某些网站无法访问。

三、运行状况

   启用ping:选中

   启用快速失败保护:不选。这个最容易造成IIS当机

   启动时间限制:90秒

   关闭时间限制:90秒  

http://hi.baidu.com/0wem/blog/item/c3ed892681f62f1c8a82a13e.html

转载于:https://www.cnblogs.com/shikyoh/archive/2011/07/29/2121434.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值