服务器管理经验:IIS故障问题分析及解决方案
前几个月有台重要的Web服务器(Windows Server2003 + IIS6.0)出现客户端无法访问Web服务器上的站点,错误信息提示为"页面无法显示"的情况。登录服务器检查后发现IIS并未停止运行,各服务也正常处理,但就是无法访问站点上的页面(包括静态页面)。这种问题其实以前也经常发生,基本上处理方法都是通过重启Web服务器来解决,至于为什么要这样处理,并没有具体的论断和依据,多半是凭借个人的经验所致,所以这种解决方法只能缓解下投诉压力,没有从根本上解决问题。
那么,我们现在就来针对这个问题深入探讨下,找出问题的根本,争取做到治标治本。
首先,肯定是分析问题服务器上的IIS日志,我发现在站点无法访问的那段时间, httperr日志中记录了大量的"Connections_Refused"错误
这个问题是在默认情况下,如果可用的非分页缓冲池内存不足 20MB,Http.sys 服务将停止接收新连接,就会出现上述问题。这也就解释了为什么重启IIS没用,只能通过重启Web服务器释放内存资源来解决。
网上也有微软官方的解决方案:
1. 进入注册表,找到如下项:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters ;
2. 新建Dword值,输入名称 "EnableAggressiveMemoryUsage";
3. 修改值为1;
4. 重启 HTTP 服务:
在DOS下分别执行
net stop http /y
iisreset /restart
我按照上述说明进行了配置,但有没有效果无法考证,只能先观察这台服务器后续的运行情况。这种处理方法比之前重启Web服务器更进了一步,至少比之前盲目的重启重启重启,更明确的知道了引起问题的原因,离真相更近了一步。那么问题发生的真正原因呢?究竟是什么导致的非分页缓冲池内存会持续增大到少于20M的呢?
要分析这个问题,首先得了解下Windows系统中的核心内存概念:核心内存是Windows分配给系统内核或驱动所需的内存空间,分页内存是虚拟内存,也就是这一部分内存可以置换到硬盘中,但是,非分页内存是不能置换到硬盘的,只能保存在物理内存中,常用于一些软件或是系统的驱动程序使用。如果未分页内存无限增大,到达一个阀值,就会造成系统问题。在32位的Windows上,这个阀值最高不能超过256MB,否则操作系统会变得非常不稳定。
打开自己系统的任务管理器,在"性能"项中,可以看到:
如上图所示,这就是我本机当前时刻所使用的分页和未分页内存数,这个数字很正常。
我们再来看下最近这台有问题的机器连续2天,2次出现故障时的内存使用数,未分页内存已经不知不觉暴涨到230多M了
好了,废话不多说,这个时候就需要用到Poolmon这个核心内存泄漏检测工具了。通过这个工具,我们来看看Web服务器上到底是哪些软件或者程序造成内存泄露,从而导致未分页内存数不足的。Poolmon是类似于Dos 的命令行执行程序,基本上完成检测的操作我们只需要2个指令: P-排序标签列表通过分页,非分页,混合等3种模式;B-对标签排序最大字节使用情况。如下图所示:显示的就是操作系统中所有占用非分页内存项,并按字节大小降序排列。我们找出排在前面,并且字节数不断增加的tag项,根据Tag来定位进程和驱动文件。比如我们想看下目前占用90M非分页内存的Thre项,在Dos中输入:
findstr /s /m /l "Thre" c:windowssystem32drivers*.sys
我们看到是系统驱动和杀毒驱动占用了Thre。这台机器上次中过毒,所以后来下了瑞星和360卫士来排毒。瑞星是出了名的耗未分页内存大户,360卫士本身也已经被病毒感染,所以我基本锁定了这2款软件,先卸载,然后重启服务器,重新下载360卫士和360杀毒再次排毒之后观察服务器运行情况和内存消耗情况。从上次重启到目前为止,运行十多天,未分页内存总消耗保持在50M以内,虽有小许增长,但还算正常。到此,根据上面的分析, 我们就可以定位出导致IIS故障的真正问题所在了。这种问题,很大部分是因为杀毒软件程序或者一些系统驱动导致的。
这里说的很大部分原因是因为杀毒软件程序或者一些系统驱动导致的非分页内存不足,是因为非分页内存一般是内核程序或驱动程序在请求。这种资源非常宝贵,如果程序处理不当的话,也会导致上述情况,比如一个Socket只接受连接,但因为某些原因没有读取数据,然后客户端连接上之后一直发送数据,在这种极端的情况下未分页内存也很快就会被占满。
【推荐阅读】
◆设备管理系统运维管理专区
◆管理人员如何过网络拓扑图实现查询
◆中小型数据安全和管理安全应对之策
◆企业设备管理系统运维管理软件趋势
◆设备管理软件软件专区
本文来自互联网,仅供参考- 1设备管理系统app
- 2虚拟网络设备的优缺点何在?
- 3调查:2013年十大最热IT职业
- 4IT事故能真正实现防患于未然吗?
- 5系统管理员如何面对分工专业化
- 6设备台帐管理是做些什么?
- 7改变IT行业的十大技术趋势
- 8IT运维管理发展之路回顾
- 9IT运维管理安全五大错误解析
- 10云虚拟化存储和网络有哪些表现
- 11回顾2012年设备管理系统安全圈发生的那些事儿
- 122013年服务器虚拟化趋势预测
- 13BYOD成本的秘密:企业真能实现成本节约吗?
- 14IT运维管理平台行业标准
- 15数据中心电源管理:细节是关键
- 16未来数据中心和云计算的十二大趋势
- 17停车场管理系统设备包括哪些?
- 18设备台账管理软件需求分析
- 19如何加强设备管理系统的实用性?
- 20云计算时代的IT运维走向何方?
- 21运维人员须时刻谨记的十条安全法则
- 22智能设备管理系统的作用有哪些?
- 23IT部门应该关注大数据
- 24如何构建数据中心安全管理体系
- 25顶级CIO必不可犯的八大IT失误
- 26数据中心运维管理十大黄金经验
- 27如何提高IT运维人员工作效率
- 28设备管理系统维护经验:如何设计不易破解的密码
- 29企业网络带宽管理的八个技巧
- 30IT运维管理人员必须掌握的IT能源管理技术