php-fpm: des centaines de secondes dans le journal

12

J'ai un serveur Web nginx + php-fpm

J'ai donc remarqué dans php5-fpm.log de nombreuses lignes étranges:

[03-Sep-2013 09:25:23] NOTICE: [pool www] child 23999 exited with code 0 after 321.832329 seconds from start
[03-Sep-2013 09:25:23] NOTICE: [pool www] child 24082 started
[03-Sep-2013 09:25:41] NOTICE: [pool www] child 24032 exited with code 0 after 259.247887 seconds from start
[03-Sep-2013 09:25:41] NOTICE: [pool www] child 24083 started
[03-Sep-2013 09:25:47] NOTICE: [pool www] child 24033 exited with code 0 after 255.954602 seconds from start
[03-Sep-2013 09:25:47] NOTICE: [pool www] child 24084 started
[03-Sep-2013 09:25:50] NOTICE: [pool www] child 24014 exited with code 0 after 327.620462 seconds from start
[03-Sep-2013 09:25:50] NOTICE: [pool www] child 24085 started
[03-Sep-2013 09:25:55] NOTICE: [pool www] child 24034 exited with code 0 after 254.974653 seconds from start
[03-Sep-2013 09:25:55] NOTICE: [pool www] child 24086 started
[03-Sep-2013 09:26:01] NOTICE: [pool www] child 24035 exited with code 0 after 253.388234 seconds from start
[03-Sep-2013 09:26:01] NOTICE: [pool www] child 24087 started
[03-Sep-2013 09:26:02] NOTICE: [pool www] child 24036 exited with code 0 after 251.374430 seconds from start
[03-Sep-2013 09:26:02] NOTICE: [pool www] child 24088 started
[03-Sep-2013 09:26:05] NOTICE: [pool www] child 24019 exited with code 0 after 325.601766 seconds from start
[03-Sep-2013 09:26:05] NOTICE: [pool www] child 24089 started
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24037 exited with code 0 after 255.871955 seconds from start
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24090 started
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24038 exited with code 0 after 255.884311 seconds from start
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24091 started
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24039 exited with code 0 after 254.826181 seconds from start
[03-Sep-2013 09:26:09] NOTICE: [pool www] child 24092 started
[03-Sep-2013 09:26:12] NOTICE: [pool www] child 24040 exited with code 0 after 256.232759 seconds from start
[03-Sep-2013 09:26:12] NOTICE: [pool www] child 24093 started
[03-Sep-2013 09:26:14] NOTICE: [pool www] child 24027 exited with code 0 after 321.722533 seconds from start

Quelqu'un peut-il me dire à quoi ressemblent ces secondes after 321.722533 seconds from startet qu'est-ce que cela signifie?

UPD

Ma config c'est:

pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 100
Lari13
la source

Réponses:

20

"Secondes" est une unité de temps; 321 d'entre eux est un peu plus de cinq minutes .

La raison pour laquelle vos processus se terminent et réapparaissent est que vous avez défini l' pm.max_requestsoption dans votre fichier de configuration de pool php-fpm.

Par exemple, tiré de la configuration par défaut:

; 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

Nous pouvons voir dans votre configuration qu'il est défini sur 100, donc php-fpm recycle le processus après avoir traité 100 requêtes.

Michael Hampton
la source
Donc, cela signifie seulement que le fil de béton a vécu 321quelques secondes et sera réapparu. Je ne peux pas y prêter attention?
Lari13
1
Vous pouvez ignorer ces messages; ils sont inoffensifs et purement informatifs.
Michael Hampton
Ces entrées de journal peuvent être évitées en augmentant le log_levelparamètre php-fpm.confde notice(c'est la valeur par défaut peut-être) àwarning
Paolo
2

Que dit votre max_requestsdécor? S'il s'agit d'un site Web occupé, il est probable qu'il recycle ses processus enfants une fois qu'il atteint ce nombre de demandes - à moins qu'il ne dise 0, auquel cas il pourrait atteindre un délai d'expiration interne et fermer des processus enfants pour économiser de la mémoire pendant les périodes de silence. Je sais que le processeur FastCGI pour IIS fait cela; c'est probablement la même situation ici.

Src: http://php-fpm.org/wiki/Configuration_File

EDIT: Alors c'est ce qui se passe. Dès qu'un enfant atteint 100 demandes, il se ferme. PHP-FPM en ouvrira alors un nouveau en cas de besoin (ce qui pourrait être immédiatement).

Aaron Mason
la source
pm.max_requests = 100dans ma config. Plase, voir la mise à jour
Lari13