php-fpm: сотни секунд в журнале

12

У меня есть nginx + php-fpm веб-сервер

Итак, я заметил в php5-fpm.log много странных строк:

[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

Кто-нибудь может сказать мне, на что похожи эти секунды after 321.722533 seconds from startи что это значит?

UPD

Мой конфиг:

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
источник

Ответы:

20

«Секунды» - это единица времени; 321 из них - чуть более пяти минут .

Причина, по которой ваши процессы завершаются и возрождаются, заключается в том, что вы установили pm.max_requestsопцию в файле конфигурации пула php-fpm.

Например, взято из конфигурации по умолчанию:

; 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

Мы видим в вашей конфигурации, что он установлен 100, поэтому php-fpm перезапускает процесс после обработки 100 запросов.

Майкл Хэмптон
источник
Таким образом, это означает, что конкретная нить прожила 321секунды и будет возрождена. Я не могу обратить на это внимание?
Lari13,
1
Вы можете игнорировать эти сообщения; они безвредны и чисто информационные.
Майкл Хэмптон
Этих записей журнала можно избежать, подняв log_levelпараметр php-fpm.confс notice(это может быть значение по умолчанию) доwarning
Paolo
2

Что говорит твоя max_requestsнастройка? Если это загруженный веб-сайт, он, вероятно, перезапустит свои дочерние процессы, как только достигнет этого числа запросов - если только он не скажет 0, в этом случае он может использовать внутренний тайм-аут и закрыть дочерние процессы, чтобы сохранить память в тихое время. Я знаю, что процессор FastCGI для IIS делает это; Вероятно, такая же ситуация здесь.

Источник: http://php-fpm.org/wiki/Configuration_File

РЕДАКТИРОВАТЬ: Тогда это то, что происходит. Как только один ребенок набирает 100 запросов, он закрывается. PHP-FPM откроет новый, когда это необходимо (что может быть немедленно).

Аарон Мейсон
источник
pm.max_requests = 100в моем конфиге. Пожалуйста, смотрите обновление
Lari13