为什么我的apache web服务器上的进程不断增加?

我正在运行一个Apache 2的Web服务器。 一切工作正常,但大约每14-20天我必须重新启动Web服务器,因为它不响应了。

看看慕尼黑的统计数字,我认识到,这与apache进程的数量有关。 他们不断增加,直到他们达到150.然后Apache没有回应。

我如何防止“冻结”阿帕奇?

这里是统计的截图:

增加apache 2 web服务器的进程

细节:

  • Apache在Debian 5.0根服务器上运行。
  • 使用ISPConfig进行pipe理
  • 我主持了大约30个网站
  • 每天1000页的展示次数(所有网站的总和)
  • 他们大多是Drupal的安装
  • 一个Piwik安装所有网站
  • 一些自定义PHP应用程序

日志和状态消息:

扩展的apache状态显示了这些行中的45个(通过SERVERNAME取代了真实的主机名)中的30个:

 22-5 - 0/0/75 . 0.00 1813 0 0.0 0.00 1.17 ::1 SERVERNAME OPTIONS * HTTP/1.0 

一些Apache设置(默认设置):

  • prefork模块已启用
  • MaxKeepAliveRequests = 100
  • 超时= 300
  • KeepAlive =开
  • KeepAliveTimeout = 15
  • MaxClients = 150
  • MaxRequestsPerChild = 0
  • StartServers = 5
  • MinSpareServers = 5
  • MaxSpareServers = 10
  • MaxClients = 150
  • MaxRequestsPerChild = 0

这看起来像你有一些永不终止的请求,迫使Apache产生新的进程,直到达到configuration的最大值。 之后,Apache无法为新的请求创build新的进程,并显示死亡。

用您提供给我们的less量数据来说明可能会导致这种情况是不可能的。

你看到日志文件中的提示吗? 什么样的页面给你服务的客户? 静态HTML,PHP,CGI或其他东西? 在什么操作系统?

你当然不应该看到这种行为 – 这意味着你的系统中有些东西是非常坏的。

你有什么设置:

 Timeout KeepAlive MaxKeepAliveRequests KeepAliveTimeout MaxRequestsPerChild ServerLimit MaxClients 

这是前叉或线程的Apache?

但是,这个问题在其他地方出现的可能性更大。 apache是​​否使用任何脚本/应用程序引擎? 如果是这样的话? 它是如何configuration的?