我遇到了一个令人困惑的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
答案 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个内存。到目前为止还没有问题。保持手指交叉。