php-fpm: setki sekund w dzienniku

12

Mam serwer WWW nginx + php-fpm

Więc zauważyłem w php5-fpm.log wiele dziwnych linii:

[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

Czy ktoś może mi powiedzieć, jakie są te sekundy after 321.722533 seconds from starti co to oznacza?

UPD

Moja konfiguracja to:

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
źródło

Odpowiedzi:

20

„Sekundy” to jednostka czasu; 321 z nich to nieco ponad pięć minut .

Powodem dla którego procesy wychodzą i odradzają się jest ustawienie pm.max_requestsopcji w pliku konfiguracyjnym puli php-fpm.

Na przykład wzięty z domyślnej konfiguracji:

; 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

Widzimy w twojej konfiguracji, że jest ustawiony 100, dlatego php-fpm przetwarza proces po przetworzeniu 100 żądań.

Michael Hampton
źródło
Oznacza to, że tylko ta konkretna nić przeżyła 321sekundy i zostanie odrodzona. Nie mogę na to zwrócić uwagi?
Lari13
1
Możesz zignorować te wiadomości; są nieszkodliwe i mają wyłącznie charakter informacyjny.
Michael Hampton
Tych wpisów do dziennika można uniknąć, podnosząc log_levelparametr php-fpm.confz notice(być może jest to wartość domyślna) dowarning
Paolo,
2

Co mówi twoje max_requestsustawienie? Jeśli jest to zajęta witryna, prawdopodobnie ponownie przetwarza swoje procesy potomne, gdy trafi ona na taką liczbę żądań - chyba że mówi 0, w którym to przypadku może uderzyć w wewnętrzny limit czasu i zamknąć procesy potomne, aby zaoszczędzić pamięć w czasie ciszy. Wiem, że robi to procesor FastCGI dla IIS; tutaj prawdopodobnie jest taka sama sytuacja.

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

EDYCJA: Więc to się dzieje. Gdy tylko jedno dziecko spełni 100 żądań, zamyka się. PHP-FPM otworzy wtedy nowy, kiedy będzie potrzebny (co może być natychmiast).

Aaron Mason
źródło
pm.max_requests = 100w mojej konfiguracji. Plase, patrz aktualizacja
Lari13