apache运行一段时间后就挂掉,重启恢复,解决办法

来源:互联网 发布:java向移动推送原理图 编辑:程序博客网 时间:2024/06/11 07:31

http://blog.sina.com.cn/s/blog_6ba954ca0101395d.html

 

 

apache重启后,网站正常运行一段时间就再打不开了。进度条到38%就不动了。重启apache问题依然。昨天安装更新之前正常。请问该如何解决?谢谢了!

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

这个问题是1.APACHE问题

           2.系统问题(我系统XP SP2 GHOST版)
 
================================================================================================
 
以上是两位朋友遇到的情况,跟我遇到的情况很类似,他们的解决方法:
 
在httpd.conf   中调整如下   恢复正常   之前为255和0的时候也正常运行   而且现在访问量也不大
<IfModule   mpm_winnt.c >
ThreadsPerChild   1000
MaxRequestsPerChild     10000
Win32DisableAcceptEx
</IfModule >
 
 
 
====================
 
问题解决过程:请求太多

修改APACHE两个参数

  
   ThreadsPerChild 250
   MaxRequestsPerChild  0


ThreadsPerChild:

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

MaxRequestsPerChild:

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

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

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

http://blog.chinaunix.net/uid-487421-id-2114070.html