设为首页 收藏本站
查看: 1037|回复: 0

[经验分享] IIS 503问题排查思路

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-12 13:02:43 | 显示全部楼层 |阅读模式
  对于IIS报503的问题相信大家都很熟悉了,博客园以前也经常503,但这个问题不好排查,前几天我也为503问题烦恼,总结了一些排查思路和大家分享,但最终还没有解决问题,请大家有懂的也赶紧指点指点。
  
  网上有人发贴说可能与应用程序池的进程回收设置有关,建议把应用程序池的回收属性页的所有回收选项都禁用,理由是如果没有发现内存泄漏,线程刮起等现象的话应该就不需要设置进程回收。
  现在不确定503错误到底是不是和进程回收有关系,如果禁用进程回收设置会不会缓解这个问题,会不会引起更严重的错误。这里的回收应该不是像CLR的GC那样的内存回收吧,我觉得工作进程回收这个设置是用来排错使用的。就是如果一个web应用程序用着用着就莫名其妙的出错了,而查不到原因,而重启IIS或者重启应用程序池就缓解了,这时候就设置一下达到一定条件进行进程回收,但只是暂时的解决方案,最终应该找到原因并修复应用程序。
  IIS帮助里也明确说明了设置进程回收的场景,而且说重叠回收中不会断掉tcp链接,会自动把请求平滑过度到新进程中,也就是这个过程中不会引起服务不可用,也就是503错误。
  所以我也比较倾向于关掉进程回收选项。
  
  为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制。进程ID是,IIS6.0经常假死(里面的观点不要无理由地打开回收工作进程和使用工作进程池。一般理由通常是有不明原因的内存泄露、线程挂起等)
http://hi.baidu.com/nayinian/blog/item/468c900fce94dcecab6457f7.html

  回收工作进程相关说明(win2003安装iis在ie里键入下面的地址,里面介绍了启用进程回收的时机及重叠回收的概念)
mk:@MSITStore:C:\WINDOWS\Help\iismmc.chm::/htm/ca_recycwrkrprocess.htm
  
  错误定义:503:“服务不可用”错误是一个非自定义的错误,该错误表示服务器当前无法处理该请求。
  原因:
  1、管理员可能关闭应用程序池以执行维护。
2、当请求到达时应用程序池队列已满。
3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组
4、应用程序池启用了CPU监视,并且设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭
5、应用程序池的性能选项卡的请求队列限制所填的数值太小,默认为1000,可修改成一个更大的值,比如说4500.
6、web.config的system.web/httpRuntime节点的appRequestQueueLimit属性设置的值太低。
  排查思路:
  1、先检查C:\WINDOWS\system32\LogFiles\HTTPERR\httperr1.log,看里面有没有503错误,503错误是不会记录到C:\WINDOWS\system32\LogFiles\W3SVC1下的,如果503那一行有AppShutdown字样,肯能是由于CPU占用率太高导致自动关闭应用程序池。如果是AppOffline可能是由于应用程序标识出错引起的,如果是Disabled可能是由于管理员手工关闭应用程序池引起的。根据这些信息然后再采取响应措施。
2、根据原因5和原因6来设置更大的请求队列数目。
3、禁用所有应用程序池回收选项。
4、添加ASP.NET\RequestsCurrent,ASP.NET\Requests Queued两个计数器,查看IIS的请求数和队列数。
  相关链接:
  TechNet V播:HTTP503故障排除(里面提到的可能性不打)
http://www.microsoft.com/china/technet/vcast/live/episode.aspx?newsID=class01_022
\\CXZ.amigo.bjmcc.net\input\503.wmv
IIS 状态代码(里面提到iis状态码及可能原因,其中包括503)
http://support.microsoft.com/kb/318380
如果 AppPoolQueueLength 值是否太低 " HTTP 503 服务不可用 " 错误消息(如果网站访问量比较大也许是这个原因)
http://support.microsoft.com/kb/816995/zh-cn
http://support.microsoft.com/kb/816995/en
FIX: ASP.NET 队列请求太多(该问题是asp.net 1.0的bug,已经有hotfix修复)
http://support.microsoft.com/kb/822148/zh-cn
http://support.microsoft.com/kb/822148/en
<httpRuntime appRequestQueueLimit> 元素(文中提到如何通过配置文件来设置应用程序请求的最大数目)
  http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpgenref/html/gngrfhttpruntimesection.asp
  客户端请求收到&#8220;503:服务不可用&#8221;错误(阐述503定义、可能原因及问题排查)
http://technet2.microsoft.com/WindowsServer/zh-CHS/Library/
IIS 6.0入门及进阶webcast(有IIS排错系列)
https://www.microsoft.com/china/technet/webcasts/class/iis.mspx
大家是不是也常遇到服务器不可用啊?Service Unavailable(博客园的一群人讨论503的原因及应该采取的措施)
http://www.iyunv.com/birdshome/archive/
为应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制。进程ID是,IIS6.0经常假死(里面的观点不要无理由地打开回收工作进程和使用工作进程池。一般理由通常是有不明原因的内存泄露、线程挂起等)
http://hi.baidu.com/nayinian/blog/item/
回收工作进程相关说明(win2003安装iis在ie里键入下面的地址,里面介绍了启用进程回收的时机及重叠回收的概念)
mk:@MSITStore:C:\WINDOWS\Help\iismmc.chm::/htm/ca_recycwrkrprocess.htm
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97958-1-1.html 上篇帖子: Host WCF Service in IIS 下篇帖子: 纯技术:访问 IIS 元数据库失败的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表