PHP的FPM保持悬挂

我尝试了各种select,但每隔几天(主要是每天)FPM停止提供页面,我得到一个502(从切诺基networking服务器)

日志填充以下内容:

[15-Sep-2014 10:17:46] WARNING: [pool www] child 10135 exited on signal 11 (SIGSEGV - core dumped) after 15.512406 seconds from start [15-Sep-2014 10:17:46] NOTICE: [pool www] child 10138 started [15-Sep-2014 10:18:02] WARNING: [pool www] child 10138 exited on signal 11 (SIGSEGV - core dumped) after 15.657950 seconds from start [15-Sep-2014 10:18:02] NOTICE: [pool www] child 10166 started [15-Sep-2014 10:18:20] WARNING: [pool www] child 10212 exited on signal 11 (SIGSEGV - core dumped) after 10.192596 seconds from start [15-Sep-2014 10:18:20] NOTICE: [pool www] child 10214 started [15-Sep-2014 10:19:08] WARNING: [pool www] child 10216 exited on signal 11 (SIGSEGV - core dumped) after 42.754452 seconds from start [15-Sep-2014 10:19:08] NOTICE: [pool www] child 10242 started [15-Sep-2014 10:20:22] WARNING: [pool www] child 10332 exited on signal 11 (SIGSEGV - core dumped) after 14.862183 seconds from start [15-Sep-2014 10:20:22] NOTICE: [pool www] child 10494 started [15-Sep-2014 10:20:48] WARNING: [pool www] child 10494 exited on signal 11 (SIGSEGV - core dumped) after 26.415409 seconds from start [15-Sep-2014 10:20:48] NOTICE: [pool www] child 10498 started [15-Sep-2014 10:32:48] WARNING: [pool www] child 11718 exited on signal 11 (SIGSEGV - core dumped) after 21.319360 seconds from start [15-Sep-2014 10:32:48] NOTICE: [pool www] child 11720 started 

每次发生这种情况时,最后的日志都是类似的

 [15-Sep-2014 11:01:34] WARNING: [pool www] server reached max_children setting (50), consider raising it 

这是根据切诺基在同一时间的连接,它甚至没有穗… 在这里输入图像描述

我试过dynamic的,固定的ondemand,没有任何改变。 不pipemax_children我设定它最终死亡。

为什么它不能恢复,我不知道,但现在要切换到别的东西或做一个crontab,每30分钟重新启动FPM

服务器

  • rackspace第一代1024 MB RAM,40 GB磁盘
  • Ubuntu 12.04 LTS
  • 切罗基1.2.103

PHP 5.3.10-1ubuntu3.11与Suhosin-Patch(cli)(构build于:2014年4月4日01:30:04)Copyright(c)1997-2012 PHP Group Zend Engine v2.3.0,Copyright(c)1998-2012 Zend技术

网站获得约2k页面浏览下午,所以它甚至没有这么大的负载。

内存使用徘徊在300 – > 400MB左右,交换为空,负载平均值<〜1.5

fpmconfiguration

 [global] pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log emergency_restart_threshold = 5 emergency_restart_interval = 1s process.max = 75 include=/etc/php5/fpm/pool.d/*.conf 

池configuration

 [www] user = www-data group = www-data listen = 127.0.0.1:9000 pm = ondemand pm.max_children = 50 pm.start_servers = 3 pm.min_spare_servers = 2 pm.max_spare_servers = 6 pm.process_idle_timeout = 10s pm.max_requests = 100 pm.status_path = /status ping.path = /fpm/ping chdir = / 

我不知道你是否遇到以下错误

https://bugs.php.net/bug.php?id=62205

可能会尝试升级的PHP

增加服务器的数量,更改你的configuration或代码不会有助于分段错误。 即使在2014年,5.3.10也早已岌岌可危,并有所升级。 你可以使用gdb来分析核心转储,但是没有人会对在旧版本的php:upgrade中修复一个bug感兴趣。