php-fpm每天停止很多次

我在Centos 6服务器上安装了一个Wordpress繁忙的博客:

CPU:Intel Xeon E3 1245v2 – 4核心 – 8线程RAM:32 Go DDR3

Nginx,PHP-FPM和APC

版:

PHP 5.4.9(fpm-fcgi)(内置:2012年11月22日上午11:33:35)

nginx版本:nginx / 1.2.5

该网站第一天工作,我用UNIX套接字而不是TCP

PHP-FPM的错误日志:

[14-Dec-2012 01:33:45] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 3 idle, and 205 total children [14-Dec-2012 01:34:08] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 3 idle, and 222 total children [14-Dec-2012 01:34:35] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 240 total children [14-Dec-2012 01:34:44] WARNING: [pool www] server reached pm.max_children settin g (250), consider raising it [14-Dec-2012 14:21:22] NOTICE: Terminating ... [14-Dec-2012 14:21:22] NOTICE: exiting, bye-bye! [14-Dec-2012 14:21:23] NOTICE: fpm is running, pid 2345 [14-Dec-2012 14:21:23] NOTICE: ready to handle connections [14-Dec-2012 14:21:30] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 4 idle, and 9 total children [14-Dec-2012 14:24:39] WARNING: [pool www] child 2354 exited on signal 7 (SIGBUS ) after 191.690193 seconds from start [14-Dec-2012 14:24:39] NOTICE: [pool www] child 2510 started 

我增加了pm.max_children价值,但没有任何成功

PHP-FPMconfiguration:

 ; If this number of child processes exit with SIGSEGV or SIGBUS within the time ; interval set by emergency_restart_interval then FPM will restart. A value ; of '0' means 'Off'. ; Default Value: 0 emergency_restart_threshold = 10 ; Interval of time used by emergency_restart_interval to determine when ; a graceful restart will be initiated. This can be useful to work around ; accidental corruptions in an accelerator's shared memory. ; Available Units: s(econds), m(inutes), h(ours), or d(ays) ; Default Unit: seconds ; Default Value: 0 emergency_restart_interval = 1m ; Time limit for child processes to wait for a reaction on signals from master. ; Available units: s(econds), m(inutes), h(ours), or d(ays) ; Default Unit: seconds ; Default Value: 0 process_control_timeout = 10s 

默认池configuration:

 ; The number of child processes to be created when pm is set to 'static' and the ; maximum number of child processes to be created when pm is set to 'dynamic'. ; This value sets the limit on the number of simultaneous requests that will be ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP ; CGI. ; Note: Used when pm is set to either 'static' or 'dynamic' ; Note: This value is mandatory. pm.max_children = 250 ; The number of child processes created on startup. ; Note: Used only when pm is set to 'dynamic' ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 pm.start_servers = 5 ; The desired minimum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.min_spare_servers = 5 ; The desired maximum number of idle server processes. ; Note: Used only when pm is set to 'dynamic' ; Note: Mandatory when pm is set to 'dynamic' pm.max_spare_servers = 70 ; The number of requests each child process should execute before respawning. ; This can be useful to work around memory leaks in 3rd party libraries. For ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. ; Default Value: 0 ;pm.max_requests = 500 

PHP进程不能特别reliabile时,无限期地运行。 你应该配置php-fpm以便经常重新启动工作进程。 尝试改变

  ;pm.max_requests = 500 

  pm.max_requests = 500 

作为一个开始。 这可能无法解决所有问题,因为您可能有其他配置问题,但更改max_requests是一个好的开始。 我的服务器已经运行了好几个月,没有任何停机时间。