Сервер nginx -> php-fpm -> postgres
Свободная оперативная память 15-20 Гб
48 ядер
Проблем с дисками нет
Настройки пула:
pm = dynamic
pm.max_children = 400
pm.max_spare_servers = 300
pm.start_servers = 200
pm.min_spare_servers = 100
pm.max_requests = 300
pm.process_idle_timeout = 10s
После перезапуска проходит какое то время и снова получаю предупреждение в логах php:
spawning 8 children, there are 91 idle, and 244 total children
WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 96 idle, and 252 total children
Параллельно сильно тормозит веб-интерфейс, практически недоступен для пользователей.
Перезапуск php помогает, но через какое то время проблема повторяется.
Нужно увеличить pm.start_servers, or pm.min/max_spare_servers ? Такое чувство, что чем больше я их добавляю, тем больше процессов просто висят и чего то ждут.
На что еще следует обратить внимание?
Кол-во процессов php-fpm меняется вот с такой тенденцией:
Thu Jan 9 11:56:00 MSK 2025
226
-----------------
Thu Jan 9 11:57:00 MSK 2025
226
-----------------
Thu Jan 9 11:58:00 MSK 2025
226
-----------------
Thu Jan 9 11:59:00 MSK 2025
248
-----------------
Thu Jan 9 12:00:00 MSK 2025
275
-----------------
Thu Jan 9 12:01:00 MSK 2025
275
-----------------
Thu Jan 9 12:02:00 MSK 2025
275
-----------------
Thu Jan 9 12:03:00 MSK 2025
275
-----------------
Thu Jan 9 12:04:00 MSK 2025
275
-----------------
Thu Jan 9 12:05:00 MSK 2025
275
-----------------
Thu Jan 9 12:06:00 MSK 2025
275
-----------------
Thu Jan 9 12:07:00 MSK 2025
275