APACHE在运行一段时间后自动停止

APACHE2.2.4 运行一段时时间后就不在反应了,当机了,什么都打不开了,然后重启APACHE 就OK了,特是遇到大的特别耗时的程序时,就出现当机!

解决方法:

在httpd.conf 中调整如下 恢复正常 之前为255和0的时候也正常运行 而且现在访问量也不大

ThreadsPerChild   1000 
MaxRequestsPerChild     10000 
Win32DisableAcceptEx

问题解决过程:请求太多

修改APACHE两个参数

ThreadsPerChild 250
MaxRequestsPerChild  0

ThreadsPerChild:

这个指令设置了每个子进程建立的线程数。子进程在启动时建立这些线程后就不再建立新的线程了。

如果使用一个类似于mpm_winnt只有一个子进程的MPM,这个数值要足够大,以便可以处理可能的请求高峰。如果使用一个类似于worker有多个子进程的MPM,每个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。

MaxRequestsPerChild:

这个参数是说,apache进程在处理了多少个请求之后,必须退出,重新开始,以免在处理中的内存问题。

对于php脚本来说,把这个参数设置的小一些是有好处的,可以避免程序使用的内存持续增长对apache带来的压力:让这个参数定期释放内存,因为php是在脚本执行完毕后,自动释放只用的资源(内存)的。

比如设置为50?如果太小的话,重新产生一个apache进程也是要消耗资源的,这是一个平衡问题。

ThreadsPerChild 250
MaxRequestsPerChild  50

将MaxRequestsPerChild设置成非零值有两个好处:

可以防止(偶然的)内存泄漏无限进行,从而耗尽内存。 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3