Задать вопрос
grabbee
@grabbee

PHP-FPM не убивает процессы, они забивают всю память. В чем причина?

Вот вывод php-fpm -tt
configuration file /usr/local/etc/php-fpm.conf test is successful

[02-Jan-2022 15:27:07] NOTICE: [pool www] pm.start_servers is not set. It's been set to 5.
[02-Jan-2022 15:27:07] NOTICE: [global]
[02-Jan-2022 15:27:07] NOTICE: pid = undefined
[02-Jan-2022 15:27:07] NOTICE: error_log = /proc/self/fd/2
[02-Jan-2022 15:27:07] NOTICE: syslog.ident = php-fpm
[02-Jan-2022 15:27:07] NOTICE: syslog.facility = 24
[02-Jan-2022 15:27:07] NOTICE: log_buffering = no
[02-Jan-2022 15:27:07] NOTICE: log_level = unknown value
[02-Jan-2022 15:27:07] NOTICE: log_limit = 8192
[02-Jan-2022 15:27:07] NOTICE: emergency_restart_interval = 60s
[02-Jan-2022 15:27:07] NOTICE: emergency_restart_threshold = 10
[02-Jan-2022 15:27:07] NOTICE: process_control_timeout = 10s
[02-Jan-2022 15:27:07] NOTICE: process.max = 0
[02-Jan-2022 15:27:07] NOTICE: process.priority = undefined
[02-Jan-2022 15:27:07] NOTICE: daemonize = no
[02-Jan-2022 15:27:07] NOTICE: rlimit_files = 4096
[02-Jan-2022 15:27:07] NOTICE: rlimit_core = 0
[02-Jan-2022 15:27:07] NOTICE: events.mechanism = epoll
[02-Jan-2022 15:27:07] NOTICE:
[02-Jan-2022 15:27:07] NOTICE: [www]
[02-Jan-2022 15:27:07] NOTICE: prefix = undefined
[02-Jan-2022 15:27:07] NOTICE: user = www-data
[02-Jan-2022 15:27:07] NOTICE: group = www-data
[02-Jan-2022 15:27:07] NOTICE: listen = 9000
[02-Jan-2022 15:27:07] NOTICE: listen.backlog = 511
[02-Jan-2022 15:27:07] NOTICE: listen.owner = undefined
[02-Jan-2022 15:27:07] NOTICE: listen.group = undefined
[02-Jan-2022 15:27:07] NOTICE: listen.mode = undefined
[02-Jan-2022 15:27:07] NOTICE: listen.allowed_clients = undefined
[02-Jan-2022 15:27:07] NOTICE: process.priority = undefined
[02-Jan-2022 15:27:07] NOTICE: process.dumpable = no
[02-Jan-2022 15:27:07] NOTICE: pm = dynamic
[02-Jan-2022 15:27:07] NOTICE: pm.max_children = 1000
[02-Jan-2022 15:27:07] NOTICE: pm.start_servers = 5
[02-Jan-2022 15:27:07] NOTICE: pm.min_spare_servers = 5
[02-Jan-2022 15:27:07] NOTICE: pm.max_spare_servers = 5
[02-Jan-2022 15:27:07] NOTICE: pm.process_idle_timeout = 10
[02-Jan-2022 15:27:07] NOTICE: pm.max_requests = 20
[02-Jan-2022 15:27:07] NOTICE: pm.status_path = /fpm_status
[02-Jan-2022 15:27:07] NOTICE: ping.path = /fpm_ping
[02-Jan-2022 15:27:07] NOTICE: ping.response = pong
[02-Jan-2022 15:27:07] NOTICE: access.log = /proc/self/fd/2
[02-Jan-2022 15:27:07] NOTICE: access.format = %R - %u %t "%m %r" %s
[02-Jan-2022 15:27:07] NOTICE: slowlog = undefined
[02-Jan-2022 15:27:07] NOTICE: request_slowlog_timeout = 0s
[02-Jan-2022 15:27:07] NOTICE: request_slowlog_trace_depth = 20
[02-Jan-2022 15:27:07] NOTICE: request_terminate_timeout = 10s
[02-Jan-2022 15:27:07] NOTICE: request_terminate_timeout_track_finished = no
[02-Jan-2022 15:27:07] NOTICE: rlimit_files = 0
[02-Jan-2022 15:27:07] NOTICE: rlimit_core = 0
[02-Jan-2022 15:27:07] NOTICE: chroot = undefined
[02-Jan-2022 15:27:07] NOTICE: chdir = undefined
[02-Jan-2022 15:27:07] NOTICE: catch_workers_output = yes
[02-Jan-2022 15:27:07] NOTICE: decorate_workers_output = no
[02-Jan-2022 15:27:07] NOTICE: clear_env = no
[02-Jan-2022 15:27:07] NOTICE: security.limit_extensions = .php .phar
[02-Jan-2022 15:27:07] NOTICE:
[02-Jan-2022 15:27:07] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful


Я специально поставил pm.max_requests = 20 чтобы он убивал процессы, но они остаются висеть в памяти, в списке процессов. Запускаю в кубернетес стандартный образ php-fpm
  • Вопрос задан
  • 243 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
grabbee
@grabbee Автор вопроса
Запущено было от Root. Я хз как это связано. Ни где ни одна с... не написала, что это важно :)
Еле нашел упоминание и то не точное, и это помогло решить проблему.

Контейнер и судя по всему FPM запускался от Root, а настройки как и положено для www-data

[02-Jan-2022 15:27:07] NOTICE: user = www-data
[02-Jan-2022 15:27:07] NOTICE: group = www-data
[02-Jan-2022 15:27:07] NOTICE: listen.owner = undefined
[02-Jan-2022 15:27:07] NOTICE: listen.group = undefined
[02-Jan-2022 15:27:07] NOTICE: listen.mode = undefined

Не знаю, баг или фича. Но процессы просто копились до потолка, пока память не заканчивалась или Nginx не умирал глядя на всё это...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Drno
У меня была похожая проблема с некстклаудом. Решилось - увеличением порта инета. Ибо трафф было 400мб, а порт - 100мб ))
Еще может быть из-за тупости диска.. мож не успевает обработать все запросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽