Linux

Настройка php-fpm

Отдельно рассмотрим PHP-FPM (Nginx)

нужно правильно рассчитать значения (параметры) в зависимости от объема памяти в системе

Посмотрим сколько памяти используется каждым дочерним процессом (PHP-FPM)

ps -ylC php-fpm --sort:rss

Смотрим столбец RSS. В нем показано использование необработанной физической памяти с помощью процессов PHP-FPM в килобайтах.

Пример:

На сервере RAM 8 гб

максимальный размер дочернего PHP-FPM 20 мб

pm.max_children = 8000 / 20 = 400

Команда для проверки среднего размера потребления памяти одним процессом PHP-FPM

ps --no-headers -o "rss,cmd" -C php-fpm | awk \'{ sum+=$1 } END { printf ("%d%s\\n", sum/NR/1024,"M") }\'

Пример конфига:

pm = dynamic

pm.start_servers = 50

pm.min_spare_servers = 25

pm.max_children = 300

pm.max_spare_servers = 60

pm.max_requests = 600

Я специально значение pm.max_children не установил на максимум чтобы не перегружать систему, так как система используется еще для других целей.

Администратор

Хороший ученик видит ошибки своего учителя, но молчит о них почтительно, ибо самые эти ошибки служат ему в пользу и наставляют его на прямой путь