Я пытаюсь оптимизировать параметры 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