Windows Server下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

  1. #由于mpm_winnt模块只会创建1个子进程,因此这里对单个子进程的参数设置就相当于对整个Apache的参数设置。
  2.  
  3. <IfModule mpm_winnt_module>
  4. ThreadsPerChild      521 #默认值是150,推荐设置:小型网站=1000 中型网站=1000~2000 大型网站=2000~3500
  5. MaxRequestsPerChild    3000 #推荐设置:小=10000 中或大=20000~100000
  6. </IfModule>

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

apache 2.4 IE10浏览器会导致Apache2.4版本阻塞假死,有一种说法,用IE10登录了网站,导致了apache的卡死,这里做一个防范:
在配置文件httpd.conf中添加如下两句

AcceptFilter http none
AcceptFilter https none

重启apache


发布日期:

所属分类: Apache/Ngnix 标签:


没有相关文章!

下一篇:

没有了,已经是最新文章