Максимальное количество запущенных httpd-процессов ограничено...

Максимальное количество запущенных httpd-процессов ограничено директивой MaxClients. Чем больше httpd-процессов тем больше они занимают места в памяти и тем больше занимает места в памяти mysqld-процесс MySQL сервера. Директивы MinSpareServers и MaxSpareServers устанавливают минимальное и максимальное количество одновременно работающих httpd-процессов которые готовы моментально принять и обработать запрос от клиента, StartServers устанавливает количество запускаемых процессов при старте Apache (не рекомендую устанавливать слишком маленькое значение, т. к. после старта сервера у первых посетителей может возникать задержка при открытии страниц), а директива MaxRequestsPerChild устанавливает сколько запросов процесс должен обработать пред тем как умереть, установите от 100 до 10000 в зависимости от посещаемости сайта. Несмотря на возможное большое количество httpd-процессов, родительский httpd-процесс всегда один, он и управляет остальными процессами. Именно по этой причине в полном списке процессов вы видете на один процесс больше чем указали в настройках. Значение директив StartServers, MinSpareServers, MaxSpareServers и MaxClients устанавливаются экспериментально в каждой системе отдельно. Для расчёта необходимо зайти в ssh под root и набрать команду top. Вы увидите таблицу с информацией о процессах и кое-какую информацию о системе. Теперь обратите внимания на то сколько места в памяти занимает один процесс httpd и сколько памяти у вас всего. Рассчитайте количество httpd-процессов так что бы при пиковой нагрузке у вас оставалось не меньше 10% свободной памяти, а для оптимальной скорости не больше 15%. Формула может быть следующая: M-30%/H, где M – общий объём памяти, H – количество памяти которое занимает один httpd-процесс, а 30% это величина которая включает в себя память для других процессов – обычно не больше 20% и 10% необходимой нам свободной памяти для гарантии безопасности. Например если у вас сервер с 512 мегабайтами памяти, а один httpd-процесс занимает 10 мб, то от 512 отнимите 30% и разделите на 10 ( 512-30%/10). Получим 35 процессов. 35 это максимальное количество запущенных httpd-процессов которое будет гарантировать стабильность работы в любых условиях. Но что будет если установить значение MaxClients большее 35, например 50? Давайте посчитаем – 50х10=500. Таким образом при пиковой нагрузке вашему серверу потребуется 500 мегабайт только на httpd-процессы. Это скорее всего вызовет ошибку Cannot allocate memory и как слествие остановку Apache, а если вы используете swap, то время открытия страниц сильно увеличится. Так же время открытия сильно увеличится если вы укажите слишком маленькое значение для MaxClients.

Максимальное количество запущенных httpd-процессов ограничено...

Настройка при варианте в 35 MaxClients может быть следующая:

Понравилась статья? Получай обновления и будь всегда в курсе событий!
Подпишись на RSS или
blog comments powered by Disqus