|
|||||||
Советы по настройке NGinx и php-fpm
Время создания: 01.04.2019 11:52
Текстовые метки: nginx, php-fpm, оптимизация, память, процессор
Раздел: Компьютер - Linux - Сеть в Linux - nginx
Запись: xintrea/mytetra_syncro/master/base/15541087317y47v7tk64/text.html на raw.github.com
|
|||||||
|
|||||||
Когда я фрилансил по этой теме делал так (дистрибутив Убунту). Определяем среднее потребление памяти одним процессом: ps -ylC php-fpm7.0 --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}' В зависимости от дистрибутива, вместо php-fpm7.0, возможно, надо будет написать, php5-fpm или php-fpm5.6, или нечно подобное. В ответ будет выдан средний размер инстанса одного php-fpm веркера: Tot=158952(7) Avg=158952/7=22.1752MB Далее делал такую инструкцию заказчику: 1) Исходим из того, что размер процесса php-fpm в среднем равен 40 Мб (для ваших сайтов). Делим количество оперативной памяти на сервере на это значение получаем максимальное количество процессов, которое может запуститься на данной конфигурации при полной загрузке; 2) Записываем 75-80% от значения максимального количества процессов в параметр pm.max_children в файле /etc/php/7.0/fpm/pool.d/www.conf ; 3) В этом же файле меняем значение по-умолчанию pm = dynamic на ondemand . Таким образом мы указали, что воркеры php-fpm будут создаваться только тогда, когда это необходимо. Т.е. они не будут попусту отъедать ОЗУ, ожидая подключения пользователя; 4) Значение pm.max_children в конфигурационных файлах остальных хостов (сайтов) устанавливаем как pm.max_children из www.conf поделить на количество ядер процессора. 5) Перезапускаем наш веб-сервер командами systemctl restart nginx, systemctl restart php-fpm . Может фигню написал, т.к. все это сильно зависит от характера трафика на сервер, см. ссылку выше. Но работало это дело долго и счастливо. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|