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

[经验分享] IIS“页面无法显示”的故障及其解决方法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-15 07:04:39 | 显示全部楼层 |阅读模式
1、 运行环境
        服务器操作系统:Microsoft Windows Server 2003 Enterprise Edition Service Pack 1
        服务器IIS:6.0
        客户端:IE5.5+
2、故障现象:
        客户端无法访问Web服务器,错误信息是"页面无法显示",服务器上检查IIS时未发现停止运行,但就是无法访问(即使是静态页面)。查阅windows 安装目录下的system32\LogFiles\HTTPERR\httperrXXX.log(XXX表示数字)文件,发现多条日志都报 Number_Connections_Refused错误(Number是一个整数如1、2、3等)。重启IIS无法解决问题,都是通过重启电脑解决。
3、网上搜索结果:
        经搜索,原因可能是nonpaged pool memory(非分页池内存)不够。搜索到以下文档:

  • 微软的官方文档:http://support.microsoft.com/kb/934878/en


  • 一个诊断具体原因的方法:http://jackyhawk.blog.hexun.com/9608276_d.html ,该方法使用了安装盘内Support.cab里面的Poolmon.exe,可直接将Support.cab里面的Poolmon.exe解压出来执行


  • Poolmon的使用说明:http://support.microsoft.com/?id=177415


  • 另一个诊断具体原因的方法:http://www.ks-soft.net/cgi-bin/phpBB/viewtopic.php?t=2477

4、Poolmon监测结果
        使用Poolmon监测后发现IIS所使用的tag占用的非分页内存并没有达到20MB的限制,而一个名为Ddk的tag则是每天都增长若干MB直至整个 nonpaged pool memory达到上限导致IIS拒绝服务。微软提供的pooltag.txt里对Ddk的说明是:Ddk  - <unknown>    - Default for driver allocated memory (user's of ntddk.h)。
        如下表所示,到IIS拒绝服务的时候,nonpaged pool memory已经达到上限110MB,而Ddk tag也已经达到了74MB的数量(一般服务器刚启动的时候Ddk只占用不到1MB)。
        Memory: 3669472K Avail: 2629568K  PageFlts:   214   InRam Krnl:10920K P:146036K
         Commit:1237096K Limit:5618588K Peak:1907340K            Pool N:110360K P:154684K
         System pool information
         Tag      Type      Allocs                         Frees                                Diff          Bytes                             Per Alloc
         Ddk      Nonp    2484310 (  13)         1693491 (  13)                790819  73677496 (     0)          93
          WFC    Nonp  387717051 (1584)   387571218 (21112)     145833   5924760 (-745208)     40
         LSwi     Nonp          1 (   0)                 0 (   0)                               1              2584576 (     0)             2584576
         MmCm Nonp         40 (   0)               10 (   0)                             30            1786400 (     0)             59546
         TCPt     Nonp    7962320 (  77)        7962290 (  77)                30            1456744 (     0)            48558
5、故障诊断
        既然确定了主要是Ddk造成nonpaged pool memory不足,那么下一步就是查找出使用了Ddk的驱动程序。在windows安装目录\system32\drivers目录下使用findstr /s /m /l "Ddk" *.sys可以找出哪些驱动程序里面使用了Ddk。查找到以下结果:

  • WINDOWS\system32\drivers\CpqCiDrv.sys
  • WINDOWS\system32\drivers\CPQCISSE.SYS
  • WINDOWS\system32\drivers\iqvw32.sys
  • WINDOWS\system32\drivers\storport.sys
  • WINDOWS\system32\drivers\tmtdi.sys
  • WINDOWS\system32\drivers\TM_CFW.sys
        从这里还是看不出具体属于哪些程序。我的方法是在注册表里搜索这些sys文件的文件名(去除.sys后缀后的名字),查找出前2个sys文件属于HP的一 个工具软件,后2个文件属于趋势防病毒软件,中间2个没有找到,但是在WINDOWS\ServicePackFiles\i386下找到同名文件,因此 可以认为他们是操作系统的驱动程序。
        找到了这些源头,那么就可以使用排除法(一个个卸载他们)确定到底是哪一个有问题或者是都有问题了(操作系统的那2个驱动卸载不了)。需要注意的是,卸载 之后需要重启电脑才能发现变化,否则nonpaged pool memory仍然会按原来的速度持续增长。还有一个要注意的是,排除掉故障源并重启电脑后nonpaged pool memory会增长一段时间(我这里是一天多,这个增长我认为是正常的,服务器各项应用都起来了并达到饱和状态的时候,消耗的nonpaged pool memory应该会比刚启动的时候多),然后稳定下来,而Ddk则基本不见增长。下面列出稳定下来的时候的poolmon监测结果:
        Memory: 3669472K Avail: 2851396K  PageFlts:   469   InRam Krnl: 2556K P:123992K
         Commit:1130100K Limit:5618588K Peak:1217596K            Pool N:31364K P:125092K
         System pool information
         Tag        Type     Allocs                    Frees                     Diff       Bytes                        Per Alloc
         File        Nonp    4900398 ( 221)   4874531 ( 219)    25867 4022408 (   304)    155
         Ntfr        Nonp      76508 (   0)        35611 (   0)            40897 2618376 (     0)       64
         LSwi     Nonp          1 (   0)              0 (   0)                     1          2584576 (     0)       2584576
         MmCa  Nonp     267906 (   1)        245131 (   4)         22775 2544880 (  -288)    111
         MmCm Nonp         40 (   0)             10 (   0)                  30        1786400 (     0)        59546
         &#8230;&#8230;
         Ddk       Nonp         19 (   0)              15 (   0)                  4         29680 (     0)             7420

运维网声明 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-99082-1-1.html 上篇帖子: [已解决]使用cookie网站不能正常登录,iis时间缓存 下篇帖子: 学习笔记之IIS启动时发生意外错误0x8ffe2740的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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