Популярные статьи |
Категория “Администрирование” Максимально число дочерних процессовЧасто задаются вопросом какое максимальное число дочерних процессов ставить, а еще чаще ставят ограничения, которых машина не в состоянии обработать. В Apache таким параметров является MaxClients, а в PHP-FPM - pm.max_children. Советую никогда не устаналивать значения выше реально, требуемых. Ресурсы могут понадобится и для других задач. Но давайте же научимся хотя бы элементано определить максимально возможное значение параметра. Критериями выбора тут являются оперативная память и процессор. Рассмотрим на примере потребление оперативной памяти. Для этого нам нужно определить несколько параметров. Общее потребление памяти процессами апача (Full Memory usage by Apache):
p.s.: для CentOS необходимо заменить apache2 на httpd. Допустим мы получили значение 445.957 MB. Далее смотрим среднее потребление оперативной памяти уже одним процессом (Avg Memory per Apache Process):
Получаем значение 34.6878 MB. Далее нужно посмотреть сколько у нас вообще памяти в системе, или еще лучше - сколько свободной памяти. Вот тут многие сделают еще одну ошибку - будут смотреть колонку free вывода команды free -m. Почему это неварно и почему так нельзя делать описано в этой статье. Другие могут сделать другую ошибку - использовать данные Cached. Это хоть и файловый кэш, но не весь он может быть использован. Смотреть нужно на параметр Inactive. Варианты получения этого параметра Available Memory:
На некоторых системах может не быть утилиты vmstat. Это редко, но бывает. По этому лучше ориентироватся на вывод meminfo. Получаем значение 2261.37 MB. Нужно учесть что Apache уже работает и потребляет ресурсы оперативной памяти, по этому к свободной памяти следует прибавить используемое не текущий момент значение потребления ram апачем. Full Available Memory = Available Memory + Full Memory usage by Apache = 2261.37 MB + 445.957 MB = 2 707.327 MB Считаем максимальное количество дочерних процессов: Max Child Processes = Full Available Memory / Avg Memory per Apache Process = 2 707.327 MB / 34.6878 MB = 78 процессов. Это то количество процессов, при котором сервер будет работать еще корректно, без дополнительной дисковой нагрузки из-за swap. Естественно следует учесть, что при росте посещаемости сайта ростет потребление оперативной памяти не только апачем, но и другими процессами. То есть Full Available Memory необходимо разделить между всеми. Как правило самые "прожорливые" это Apache, MySQL, PHP, PHP-FPM. Посчитаем аналогично для PHP-FPM на другом сервере: Full Memory usage by PHP-FPM = 1858.14 MB Avg Memory per PHP-FPM Process = 30.4613 MB Available Memory = 2272.79 MB Full Available Memory = 4 130.93 MB Max Child Processes = 135 процессов Аналогичный подсчет можно произвести и по использованию процесса. Thursday, 25 June 2015, 10:45Прочитано 1 раз Ссылка на страницу: comments powered by Disqus |
Чаще всего ищут Статистика блога |