+ -
当前位置:首页 → 问答吧 → APACHE 当机 重启后正常

APACHE 当机 重启后正常

时间:2007-09-30

来源:互联网

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

这个问题是1.APACHE问题
           2.系统问题(我系统XP SP2 GHOST版)

作者: 木�^   发布时间: 2007-09-29

问题解决过程:请求太多

修改APACHE两个参数
  
   ThreadsPerChild 250
   MaxRequestsPerChild  0

ThreadsPerChild:

这个指令设置了每个子进程建立的线程数。子进程在启动时建立这些线程后就不再建立新的线程了。如果使用一个类似于mpm_winnt只有一个子进程的MPM,这个数值要足够大,以便可以处理可能的请求高峰。如果使用一个类似于worker有多个子进程的MPM,每个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。

MaxRequestsPerChild:

这个参数是说,apache进程在处理了多少个请求之后,必须退出,重新开始,以免在处理中的内存问题。
对于php脚本来说,把这个参数设置的小一些是有好处的,可以避免程序使用的内存持续增长对apache带来的压力:让这个参数定期释放内存,因为php是在脚本执行完毕后,自动释放只用的资源(内存)的。
比如设置为50?如果太小的话,重新产生一个apache进程也是要消耗资源的,这是一个平衡问题。


  
   ThreadsPerChild 250
   MaxRequestsPerChild  50




[ 本帖最后由 木�^ 于 2007-9-29 20:48 编辑 ]
附件: 您所在的用户组无法下载或查看附件

作者: 木�^   发布时间: 2007-09-29

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

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

作者: 木�^   发布时间: 2007-09-29