Это много экземпляров Apache нормально?
Запускаем версию Apache 2.2.8-1ubuntu0.15
на нашем экземпляре VPS Ubuntu 8.04.4 LTS \n \l
, как я определил, задавая этот вопрос.
Когда я выпускаю pgrep apache2
Я получаю следующее:
2691
24517
25330
25669
25672
25795
25796
25809
25825
26401
26402
Это 11 отдельных случаев apache2
! Это нормально? Если нет, что мне с этим делать?
2 ответа
Да. Apache работает как традиционный демон Unix, в результате чего:
- Основная программа ожидает входящего запроса (блоки на сокете)
- После получения запроса используется системный вызов fork(), который заставляет основной процесс клонировать себя
- Затем основной процесс снова ждет другого запроса
- Разветвленная копия обрабатывает запрос и завершает работу
Форкинг действительно требует времени, поэтому Apache предварительно обрабатывает несколько экземпляров в ожидании обработки нескольких запросов. Это полностью настраивается через /etc/apache2.conf. Я не могу думать о точных директивах прямо сейчас, но это, вероятно, объясняется в комментариях.
Если вы ожидаете обрабатывать внезапные пакеты параллельных HTTP-запросов, вам будет полезно иметь множество экземпляров, готовых их принять. Компромисс в том, что он потребляет больше памяти.
Если вы хотите уменьшить это число, используйте директивы MinSpareServers и MaxSpareServers: