尽管如此,Apache进程仍然存在

时间:2014-05-15 13:13:46

标签: apache io timeout

我遇到了一个令人困惑的Apache问题。两次已经停止,点击MaxClients设置(如下图所示33)并停止接受新请求。

Apache Timeout 30 sec
KeepAliveTimeout 2 sec
PHP max_execution_time 30 sec
mysql connect_timeout 10 sec (no problems there, kept serving other clients)

Apache 2.2.22版(Ubuntu) mod_php的

我在这里缺少什么?什么会说服Apache让这些流程像这样徘徊?有没有办法限制"挂钟" Apache进程的时间? Apache重启是治愈方法,但我仍然希望知道潜在的问题..

ps auxf,拍摄时间为14:30,因此进程已停留超过30分钟!

root     25963  0.0  0.3 273860 12656 ?        Ss   May04   6:43 /usr/sbin/apache2 -k start
www-data 15120  0.1  1.0 289684 44872 ?        S    13:56   0:03  \_ /usr/sbin/apache2 -k start
www-data 15301  0.0  0.9 290644 41624 ?        S    13:57   0:01  \_ /usr/sbin/apache2 -k start
www-data 15392  0.1  1.0 290636 43800 ?        S    13:57   0:02  \_ /usr/sbin/apache2 -k start
www-data 15570  0.0  0.9 287508 40512 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15575  0.0  0.9 290684 41528 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15576  0.1  1.0 290612 45080 ?        S    13:58   0:02  \_ /usr/sbin/apache2 -k start
www-data 15581  0.1  0.9 290684 41420 ?        S    13:58   0:02  \_ /usr/sbin/apache2 -k start
www-data 15582  0.0  0.9 288508 40124 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15583  0.1  0.9 288500 40640 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15584  0.0  1.0 290592 43832 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15593  0.1  1.0 289444 41956 ?        S    13:58   0:02  \_ /usr/sbin/apache2 -k start
www-data 15669  0.0  1.0 290432 42312 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15754  0.0  1.0 289200 42468 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15788  0.1  1.0 290580 42068 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15789  0.0  0.9 290428 41088 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15790  0.0  0.9 290488 41004 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15792  0.0  0.8 285756 35944 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15793  0.0  0.9 290488 40880 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15794  0.1  1.0 290508 44920 ?        S    13:58   0:02  \_ /usr/sbin/apache2 -k start
www-data 15799  0.0  0.8 285796 36540 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15800  0.0  0.9 290432 40940 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15801  0.0  0.8 285604 36128 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15802  0.1  0.9 290556 41548 ?        S    13:58   0:02  \_ /usr/sbin/apache2 -k start
www-data 15803  0.0  0.9 290660 41140 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15804  0.1  0.9 288068 40104 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15805  0.0  0.8 284796 33744 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15806  0.0  0.9 290344 40744 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15811  0.0  0.9 290412 41060 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15812  0.1  1.1 291668 47908 ?        S    13:58   0:02  \_ /usr/sbin/apache2 -k start
www-data 15813  0.0  0.9 290512 40980 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start
www-data 15814  0.0  0.9 289348 40912 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15815  0.0  0.9 290508 40908 ?        S    13:58   0:00  \_ /usr/sbin/apache2 -k start
www-data 15816  0.0  0.9 290508 41020 ?        S    13:58   0:01  \_ /usr/sbin/apache2 -k start

1 个答案:

答案 0 :(得分:1)

有趣的问题,我一直在处理一个非常类似的问题。我一直在AWS t2.micro上运行一个只有1 GB内存的站点。像你一样,该网站将“停滞”。 php索引页面需要30秒才能呈现。我正在使用Postgres作为数据库在Ubuntu 14.04上运行。

我发现apache并不是真正的问题。如果我停止了postgres,那么即使没有数据,apache也会快速为这些页面提供服务。但它肯定指出postgres是罪魁祸首。 Apache进程正在等待Postgres查询,所以我会看到许多Apache2进程挥之不去。感觉像Postgres内存泄漏,但很难确定。

我升级到AWS上的t2.small实例,它有2个内存。到目前为止还没有问题。保持手指交叉。