Httpd2.4响应变慢没有反应的解决方法,甚至造成服务器死机的解决方法

郁闷了几天终于搞明白了httpd2.4被访问时经常出现超时和响应慢,甚到出现服务器假死的原因

编辑httpd.conf文件,在其后面添加  
AcceptFilter http none    
AcceptFilter https none
更改httpd的响应与超时设置,首先开启Include conf/extra/httpd-default.conf
然后更改httpd-default.conf的值 ,相关的能数可以根据自己服务器的状态进行设置
Timeout 60 (连接超时时间)建议设小些 20
KeepAlive On (开启可以提高性能,因为一个页面一般会有多个请求)
MaxKeepAliveRequests 100 (这个数目自己根据网页内容调节) 我设成了50
KeepAliveTimeout 5 (这个小于Timeout就行)

开启mpm  
Include conf/extra/httpd-mpm.conf
使用httpd -l查看系统使用的是哪种mpm(windows使用的是winnt)


修改其对应的模块配置
<IfModule mpm_winnt_module>
ThreadsPerChild    1000
MaxRequestsPerChild    10000
</IfModule>
ThreadsPerChlid是Apache进程的子线程数,这个指令设置了每个子进程建立的线程数。子进程在启动时建立这些线程后就不再建立新的线程了
MaxRequestsPerChild是进程的最大的请求数目,既指网站收到请求的缓存数。设置太小了会影响服务器性能,因为会占用较多cpu时间,太大了则会占用内存资源。一般大型的网站文件个数都是成千上万,所以管理员应该根据网站情况自己设定。

MaxRequestsPerChild指令设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。
在mpm_netware和mpm_winnt上的默认值是"0"。
将MaxRequestsPerChild设置成非零值有两个好处:
a)可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。
b)给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

如果帮您解决了相关问题,请您帮我点个赞哦!