php-fpm: Hunderte von Sekunden im Protokoll

12

Ich habe nginx + php-fpm Webserver

Also habe ich in php5-fpm.log viele seltsame Zeilen bemerkt:

[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

Kann mir jemand sagen, wie diese Sekunden sind after 321.722533 seconds from startund was es bedeutet?

UPD

Meine Konfiguration lautet:

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
quelle

Antworten:

20

"Sekunden" ist eine Zeiteinheit; 321 von ihnen sind etwas mehr als fünf Minuten .

Der Grund, warum Ihre Prozesse beendet werden und wieder auftauchen, ist, dass Sie die pm.max_requestsOption in Ihrer Konfigurationsdatei für den php-fpm-Pool festgelegt haben.

Beispiel aus der Standardkonfiguration:

; 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

Wir können in Ihrer Konfiguration sehen, dass es eingestellt ist 100, daher recycelt php-fpm den Prozess, nachdem es 100 Anfragen verarbeitet hat.

Michael Hampton
quelle
Es bedeutet also nur, dass der Betonfaden 321Sekunden lebte und wieder aufgetaucht wird. Ich kann nicht darauf achten?
Lari13
1
Sie können diese Nachrichten ignorieren. Sie sind harmlos und rein informativ.
Michael Hampton
Diese Protokolleinträge können vermieden werden, indem der log_levelParameter php-fpm.confvon notice(das ist vielleicht der Standardwert) aufwarning
Paolo
2

Was sagt Ihre max_requestsEinstellung? Wenn es sich um eine ausgelastete Website handelt, werden die untergeordneten Prozesse wahrscheinlich wiederverwendet, sobald diese Anzahl von Anforderungen erreicht ist - es sei denn, es wird 0 angezeigt. In diesem Fall kann es zu einem internen Timeout kommen und untergeordnete Prozesse schließen, um in ruhigen Zeiten Speicherplatz zu sparen. Ich weiß, dass der FastCGI-Prozessor für IIS dies tut. Hier ist es wahrscheinlich genauso.

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

EDIT: Dann passiert genau das. Sobald ein Kind 100 Anfragen erfüllt, wird es geschlossen. PHP-FPM öffnet dann ein neues, wenn es benötigt wird (was sofort sein könnte).

Aaron Mason
quelle
pm.max_requests = 100in meiner Konfiguration. Bitte siehe Update
Lari13