Pregunta:
¿Alguien ha tenido un problema similar con php-fpm 7 con 11.0-RELEASE-p8 o sabe cómo depurarlo?
La situación comienza después de unos minutos y muestra solo la mitad de las páginas a los clientes. Cualquier página muestra aproximadamente ~ 62kb de contenido con terminación ��������� 4.
Archivo de registro de php-fpm:
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80582 exited with code 0 after 0.005648 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80584 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80583 exited with code 0 after 0.005877 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80585 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80581 exited with code 0 after 0.007763 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80586 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80585 exited with code 0 after 0.005653 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80587 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80586 exited with code 0 after 0.005820 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80588 started
Configuración de PHP:
$php -v
PHP 7.0.17 (cli) (built: Mar 17 2017 02:07:44) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.17, Copyright (c) 1999-2017, by Zend Technologies
PHP-FPM.conf
pm = dynamic
pm.max_children = 25
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 3
pm.max_requests = 0 ;changing to 500
Respuesta:
Primero, este es el comportamiento esperado. Los mensajes están marcados como AVISO, el valor predeterminado en php-fpm.conf:
; Log level
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
;log_level = notice
Los procesos están saliendo y reapareciendo cuando la opción pm.max_requests está definida en su archivo de configuración php-fpm.
Por ejemplo:
; 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
Si se define como 500 en este ejemplo, php-fpm recicla el proceso después de haber procesado 500 solicitudes. En realidad, puede ignorar estos mensajes porque son inofensivos y solo informativos.
Si no desea que esos mensajes se registren, simplemente cambie su nivel de registro a algo por encima del notice
, como una warning
.