2016 server win 假死_Windows Server下Apache假死堵塞卡死无响应解决方法

本文主要介绍了在Windows Server 2016上遇到Apache服务器假死、堵塞的问题及其解决方案。建议首先检查是否开启页面压缩,然后启用MPM模块配置,特别是mpm_winnt模块,调整ThreadsPerChild和MaxRequestsPerChild参数以优化并发处理能力。此外,针对Apache 2.4和IE10可能导致的假死问题,可以通过添加AcceptFilter配置来避免。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

511遇见最近采用二级域名(bbs.511yj.com)开设了论坛,最近的试运行,发现整个域名:511yj.com 出现了堵塞假死,必须重启apache才能解决。

首先要排除一下,是否采用了页面压缩,部分服务器对压缩功能支持有限,如开启此项设置,比如HTTP压缩之gzip,等等,建议线关闭。

启用MPM模块配置文件

Apache针对不同的操作系统提供了多个不同的MPM模块,例如:mpm_beos、mpm_event、mpm_netware、mpmt_os2、mpm_prefork、mpm_winnt、mpm_worker。

Windows操作系统上默认的MPM模块是mpm_winnt,mpm_winnt模块是专门针对Windows操作系统而优化设计的MPM模块。它只创建一个单独的子进程,并在这个子进程中轮流产生多个线程来处理请求。

在对Apache的MPM模块具备一定了解后,我们就可以针对不同的MPM模块来修改Apache的最大并发连接数配置了

修改任何文件,建议做好备份。

apache\conf\httpd.conf文件中启用该配置文件

# Server-pool management (MPM specific)

Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号"#")

对应的配置参数作用如下:

ThreadsPerChild:每个子进程的最大并发线程数。

MaxRequestsPerChild:每个子进程允许处理的请求总数。如果累计处理的请求数超过该值,该子进程将会结束(然后根据需要确定是否创建新的子进程),该值设为0表示不限制请求总数(子进程永不结束)。

该参数建议设为非零的值,可以带来以下两个好处:

1. 可以防止程序中可能存在的内存泄漏无限进行下去,从而耗尽内存。

2. 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

注意:在以上涉及到统计请求数量的参数中,对于KeepAlive的连接,只有第一个请求会被计数。

修改MPM模块配置http-mpm.conf文件中的相关配置

在Apace安装目录/conf/extra目录中有一个名为httpd-mpm.conf

#由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。

ThreadsPerChild 521 #默认值是150,推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500

MaxRequestsPerChild 3000 #推荐设置:小=10000 中或大=20000~100000

再考虑一个可能,(apache 2.4)

apache 2.4 IE10浏览器会导致Apache2.4版本阻塞假死,有一种说法,用IE10登录了网站,导致了apache的卡死,这里做一个防范:

在配置文件httpd.conf中添加如下两句

AcceptFilter http none

AcceptFilter https none

重启apache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值