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

Многодоменная оптимизация NGINX + PHP-FPM

Я пытаюсь оптимизировать параметры PHP-FPM на VPS с несколькими доменами. Каждый домен настроен с собственным пользователем / группой, NGINX использует разные сокеты PHP-FPM. Для каждого домена я настроил нужного пользователя / группу.

Я обнаружил, что использование памяти было слишком высоким, причиной была неправильная конфигурация параметров дочерних элементов / сервера на PHP-FPM.

Конфигурация для каждого сайта следующая (только соответствующая часть):

pm = dynamic
pm.max_children = 6
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 300

Настроено 11 доменов с назначенным общим объемом оперативной памяти 6 ГБ. Максимальное использование памяти должно быть менее 64 МБ для каждого экземпляра PHP-FPM (htop показывает максимальное использование 50 МБ), при максимальном использовании я должен достичь ~ 4 ГБ ОЗУ.

Я думаю, что я слишком сильно ограничиваю max_children, как мне узнать лучшее значение? Полагаю, проверка реальных посещений / дней на каждом сайте поможет найти эти значения? Мне не хватает какого-то «глобального» параметра php-fpm?

РЕДАКТИРОВАТЬ:

Что о:

; The maximum number of processes FPM will fork. This has been design to control
; the global number of processes when using dynamic PM within a lot of pools.
; Use it with caution.
; Note: A value of 0 indicates no limit
; Default Value: 0
; process.max = 128

в /etc/php-fpm.conf? Учитывая количество доменов на сервере, я мог бы увеличить max_children и добавить ограничение на порожденный глобальный процесс, верно?

Машина менялась местами?

Конфигурация ваших детей кажется нормальной, хотя и слишком консервативной. Действительно, с максимальным количеством дочерних элементов == 6 и с учетом 11 доменов вы должны использовать максимум 4224 МБ ОЗУ, чтобы вы вообще не касались свопа.

Другое дело, что у нас так мало детей и:

pm.max_requests = 300

Даже при небольшом трафике вы будете запускать и убивать процессы PHP, подозреваете ли вы утечки памяти в вашей версии PHP или размещенных приложениях?

Трудно дать полный ответ без дополнительной информации, такой как среднее потребление памяти вашими процессами PHP, количество обращений в секунду для сценариев php и т. Д.

Другое дело, проверьте настройки swappines в

/proc/sys/vm/swappiness