Назад | Перейти на главную страницу

PHP5-FPM pm.max_children влияет на оперативную память или процессор + оперативную память?

Недавно унаследовал сервер Nginx + PHP5-FPM, и я изучаю и пытаюсь оптимизировать настройки PHP5-FPM.

Информация о сервере:

4 CPUs (8 threads)
7.5 GiB RAM

Информация о PHP5-FPM:

pm.max_children = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 3
;pm.process_idle_time = 10s;
;pm.max_requests = 500

(Я собираюсь раскомментировать строку max_requests, поскольку это рекомендуется делать.)

Когда веб-сайт находится под нагрузкой, каждый процесс PHP5-FPM имеет очень высокую загрузку ЦП, но я еще не видел, чтобы процесс превышал 1% использования ОЗУ.

Куда бы я ни посмотрел (например, Вот и Вот) говорит только об увеличении pm.max_children ограничен оперативной памятью и не упоминает использование ЦП.

В моем случае увеличилось бы pm.max_children увеличить или уменьшить производительность моего веб-сайта, исходя из того, что он больше связан с ЦП, чем с ОЗУ? Другими словами, как pm.max_children увеличение ОЗУ - единственное соображение или ЦП тоже влияет?

[Edit] Не дубликат: вопрос в основном сводится к последнему предложению, которое не просить совета по планированию мощностей; он спрашивает, учитывается ли использование ЦП в настройке pm.max_children или увеличивается только ОЗУ.

С моей точки зрения, ограничение на количество детей слишком низкое. Если у вас достаточно памяти (и каждый дочерний элемент обычно потребляет только небольшое количество), количество дочерних элементов должно быть установлено как минимум на ядро ​​* 2. Я бы рекомендовал установить max-children на 32.

Это зависит от того, что делают ваши PHP-скрипты. Но 5 действительно мало для процессов PHP. Обычно процесс PHP открывает соединение с MySQL (требует времени), ожидает, пока MySQL обработает запрос (требуется время), поэтому он не будет использовать ЦП все время, и всего с 5 процессами ЦП может простаивать в некоторые моменты, но не будет другого процесса PHP, который бы его использовал. Таким образом, вы можете смело увеличивать лимит как минимум до 20-30 (или больше, в зависимости от того, сколько запросов в секунду вы получите).

Касательно вопроса об использовании ЦП. Наличие большего количества активных PHP-процессов не приведет к увеличению загрузки ЦП. Вся доступная мощность процессора будет разделена между запущенными процессами.