IIS故障(Connections_Refused)问题分析及处理
近日,某地市Web服务器连续多次出现故障问题,具体表现为客户端无法访问服务器上的站点,错误信息显示为“Connections_Refused”。这是一个非常典型的Web服务器连接问题案例,需要我们深入分析并解决。对于感兴趣的朋友们,接下来我将详细介绍这一案例的背景、分析过程以及可能的解决方案。
早在前几个月,该台基于Windows Server 2003和IIS 6.0的Web服务器就曾出现无法访问站点页面的情况。虽然IIS并未停止运行,服务也在正常运行,但用户无法访问页面(包括静态页面)。过去,解决此类问题通常通过重启Web服务器的方式缓解压力,但并未从根本上解决问题。我们需要深入分析问题的根本原因。
通过分析服务器上的IIS日志,我们发现大量的“Connections_Refused”错误记录。这个问题通常是由于可用的非分页缓冲池内存不足导致的。当非分页缓冲池内存少于某个阀值时(如少于 20MB),Http.sys 服务会停止接收新连接。这也解释了为什么重启IIS无效,只能通过重启Web服务器释放内存资源来解决问题。
为了解决这个问题,我们可以尝试修改Windows系统的核心内存配置。微软官方提供了一种解决方案:进入注册表,找到相关项并修改相关参数。具体步骤如下:进入HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters;新建Dword值并输入名称 "EnableAggressiveMemoryUsage";修改值为1;最后重启HTTP服务。我们还可以利用任务管理器查看当前系统的内存使用情况,并通过Poolmon这个核心内存泄漏检测工具来查找可能导致内存泄漏的软件或程序。通过分析这些工具提供的数据,我们可以定位到占用大量非分页内存的进程和驱动文件。在这个案例中,我们注意到系统驱动和杀毒驱动占用了大量的非分页内存。由于这台机器曾经中毒并安装了瑞星和360卫士进行杀毒,这也可能是导致问题的原因之一。我们需要进一步调查这些软件与系统资源的使用情况以确定问题的根源并采取相应措施解决内存泄漏问题。通过深入分析并采取适当的解决方案我们可以从根本上解决Web服务器连接问题提高系统的稳定性和性能从而为最终用户提供更好的服务体验。瑞星和某些卫士软件因其高耗未分页内存而备受关注,特别是未分页内存,是系统运行的核心资源,一旦被占用过多,后果严重。由于这两款软件常常引起IIS故障等问题,我决定亲自介入调查。于是我先对它们进行了卸载,随后重启服务器,重新下载并安装了经过严格检测的版本的360卫士和杀毒软件。在随后的观察中,我发现未分页内存总消耗保持在了一个相对稳定的范围内,尽管有些许增长,但这一切都在可接受的范围内。由此可以确认,之前的IIS故障问题与瑞星以及可能存在病毒影响的软件有很大关系。
深入分析后,我发现问题的根源在于杀毒软件程序或某些系统驱动导致的非分页内存消耗过大。而非分页内存主要用于内核程序或驱动程序的请求,这种资源非常宝贵且稀缺。如果程序处理不当,比如一个Socket只接受连接却不读取数据,导致客户端连接后大量发送数据,这种情况很容易导致未分页内存迅速被占满。此时就需要对程序进行优化或者更换更为合理的软件配置来解决这个问题。同时还需要密切关注服务器运行状态和资源消耗情况,以确保系统正常运行和服务的稳定性。要想避免这类问题发生,不仅要注重软件的选择和优化配置,还需要对系统资源的使用情况进行实时监控和管理。通过此次事件分析,我们可以更加清晰地认识到软件与系统资源之间的紧密关系以及管理和监控的重要性。对于此类问题出现的极端情况也需要及时进行处理和解决。
编程语言
- IIS故障(Connections_Refused)问题分析及处理
- php calender(日历)二个版本代码示例(解决2038问题
- Jquery实现上下移动和排序代码
- javascript中clipboardData对象用法详解
- php 生成自动创建文件夹并上传文件的示例代码
- AngularJS + Node.js + MongoDB开发的基于高德地图位置的
- vue.js表格分页示例
- Angular.js中定时器循环的3种方法总结
- JS字符串长度判断,超出进行自动截取的实例(支持
- 每天一篇javascript学习小结(Boolean对象)
- php session_decode函数用法讲解
- ISO-8859-1 、Latin-1 西欧编码介绍及应用
- sqlserver 通用分页存储过程
- Iview Table组件中各种组件扩展的使用
- jQuery Easyui Datagrid实现单行的上移下移及保存移动
- 搞定immutable.js详细说明