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

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.


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).


pm.max_requests = 100in meiner Konfiguration. Bitte siehe Update
Lari13
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.