Настройка Apache
Установим минимально необходимые для работы атрибуты, для этого откроем для редактирования файл /etc/httpd/conf/httpd.conf
Apache может работать с одним из трех доступных мультипроцессорных модулей (mpm):
- prefork — один процесс на запрос, наиболее часто используемый модуль;
- worker — несколько процессов с несколькими нитями у каждого;
- event — новый экспериментальный вариант стандартного worker мультипроцессорного модуля.
Для просмотра информации о модулях выполните:
Пример конфигурации для Apache 2.4
<IfModule mpm_prefork_module>
ServerLimit 256
StartServers 20
MinSpareServers 20
MaxSpareServers 20
MaxRequestWorkers 256
MaxConnectionsPerChild 4000
</IfModule>
MaxRequestWorkers установите значением, равным ServerLimit.
Пример конфигурации для Apache 2
В секции <IfModule [мультипроцессорный модуль]>, например, <IfModule prefork.c> установим следующие значения:
StartServers 5
MinSpareServers 10
MaxSpareServers 10
MaxClients 30
ServerLimit 30
StartServers — количество запускаемых процессов, рассчитываете как (Всего памяти - Память для сервера, MySQL, Memcache и т.д.) / размер процесса. Например, 64Gb - 32Gb / 0.256Gb = максимум 125 процессов.
MinSpareServers — минимальное количество простаивающих процессов.
MaxSpareServers — максимальное количество простаивающих процессов.
MaxClients — лимит процессов.
ServerLimit — устанавливается аналогичным значению MaxClients.
Обстоятельно необходимо подходить к расчету MaxClients, т.к. при установке малого значения может увеличиться количество отказов вэб-сервера в обслуживании на запрос клиента. Установка слишком большого значения может привести к свопингу и значительному увеличению времени ответа вэб-сервера.
При использовании одноуровневой и двухуровневой конфигурации вtб-сервера лимиты устанавливаются по-разному. Отдавая сформированные страницы более легкому вtб-серверу (например, nginx), лимиты можно понизить. Конкретные значения рассчитываются индивидуально для каждого вэб-сервера.
KeepAlive
При запросе страницы с вэб-сервера, браузер отправляет множество запросов на загрузку CSS-стилей, изображений и т.п. Использование KeepAlive позволяет запросить страницу и сопутствующие ей файлы в течение одного соединения.
- Включаем KeepAlive, для этого строку KeepAlive Off заменяем на KeepAlive On.
- MaxKeepAliveRequests установим в значение 100.
- KeepAliveTimeout наиболее часто устанавливается в диапазоне 2 — 10. Рекомендуем установить 5 секунд.