Скачиваний:
107
Добавлен:
01.05.2014
Размер:
329.22 Кб
Скачать

Управление виртуальными хостами

При запуске демона httpd, Apache запускает несколько незадействованных порожденных версий самого себя, чтобы любой входящий запрос мгновенно обрабатывался. Схема прекрасная, но нужен какой-то способ управления образовавшимся неуклюжим скопищем программ. Для применяются следующие директивы:

MaxClients <число (по умолчанию 150)>

Данная директива ограничивает число запросов, которые могут обрабатываться одновременно. Фактически это означает ограничение количества серверов, которые могут работать одновременно.

MaxRequestsPerChild <число (по умолчанию 30) >

Каждая порожденная версия Apache обрабатывает указанное число запросов и завершает свое вышолнение (если число не равно нулю, если заданное нулевое значение, каждая порожденная версия Apache существует вечно до перезагрузки машины). Указанием ненулевого значения ликвидируются случайные потери блоков памяти в Apache. Хотя в Apache потерь блоков памяти нет, они случаются в системных библиотеках, поэтому лучше не отключать эту директиву.

MaxSpareServers <число (по умолчанию 10)>

В запущенном, но не задействованном состоянии будет находиться не более указанного числа порожденных серверов. Не следует задавать в данной директиве слишком большое число, потому что это приведет к излишнему расходованию ресурсов.

MinspareServers <число (по умолчанию 5)>

Apache пытается держать в работающем состоянии минимум указанное число резервных серверов. Если таких серверов меньше, чем указано в директиве, запускаются новые (со скоростью один в секунду). Не следует задавать в данной директиве необоснованно большое число, потому что это приведет к излишнему расходованию ресурсов.

StartServers <число (по умолчанию 5)> С помощью этой директивы устанавливается число серверов, которые запускаются Apache при старте. Поскольку новые серверы запускаются только по одному в секунду, то в сильно загруженных системах выбор этих параметров должен предваряться тщательным анализом. Чтобы справляться с внезапными всплесками трафика, целесообразно иметь несколько резервных серверов. Серверы, обрабатывающие по миллиону обращений за день, хорошо работают при значениях MaxSpareServers=64 и MinSpareServers=32. Начальную производительность можно оптимизировать путем установки значения StartServers в диапазоне где-то между MaxSpareServers и MinSpareServers. Возможно, стоит также увеличить значение MaxRequestsPerChild, чтобы избежать лишних дополнительных затрат на перезапуски процессов.

Перезапуск Apache

В процессе работы Web-мастер часто уничтожает Apache и перезапускает Apache с новым файлом конфигурации, чтобы добавить или удалить виртуальный хост. Это можно сделать грубо, остановив httpd демон и перезапустив его. При этом все текущие операции прерываются, что очень раздражает и расстраивает пользователей. Apache позволяет перезапускать главный сервер, не отсекая внезапно все работающие порожденные процессы. Перезапуск Apache можно выполнить одним из трех способов:

  1. Уничтожить и перезагрузить Apache, который затем перечитывает все свои файлы конфигурации и перезапускается.

#killPID

# httpd [флаги]

  1. Тот же эффект достигается с помощью флага -1 в команде kill

#kill -1 PID

  1. Плавный перезапуск осуществляется с флагом -16. Это позволяет порожденным процессам доработать до конца и завершить все текущие клиентские операции. Затем перечитываются файлы конфигурации и перезапускается главный процесс.

#kill-16PID

Можно сделать так, чтобы Apache вообще не порождал тьму ожидающих порожденных процессов, а запускал новый процесс каждый раз при поступлении запроса и завершал его после обработки. Конечно, при такой схеме работа осуществляется медленнее, но при этом потребляется меньше ресурсов в отсутствие клиентских запросов. Для этого используется директива:

ServerType [standalone\inetd]

Standalone

Используется по умолчанию. Разрешает создавать стаю ожидающих порожденных процессов

Inetd

Создает и уничтожает порожденные процессы по одному. Утилита inetd конфигурируется файлом /etc/inetd.conf.

Соседние файлы в папке Лекции по сетям в формате doc