Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86      88      89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 88. Общие директивы Apache MPM

Это управляет каталогом, в который Apache httpd пытается переключиться перед сбросом ядра. Если ваша операционная система настроена на создание файлов ядра в рабочем каталоге аварийного процесса, CoreDumpDirectory необходимо изменить рабочий каталог с ServerRoot каталога по умолчанию, который не должен быть доступен для записи пользователю, от имени которого работает сервер.

Если вам нужен дамп ядра для отладки, вы можете использовать эту директиву, чтобы поместить его в другое место. Эта директива не действует, если ваша операционная система не настроена на запись файлов ядра в рабочий каталог аварийных процессов.

Дампы ядра в Linux

Если Apache httpd запускается от имени пользователя root и переключается на другого пользователя, ядро Linux отключает дампы ядра, даже если каталог доступен для записи для процесса. Apache httpd (2.0.46 и более поздние версии) повторно включает дампы ядра в Linux 2.4 и более поздних версиях, но только если вы явно настроили файл CoreDumpDirectory .

Дампы ядра в BSD

Чтобы разрешить создание дампа исполняемых файлов suid в BSD-системах (таких как FreeBSD), установите kern.sugid_coredump значение 1.

Специальные сигналы

CoreDumpDirectory обработка происходит только для выбранного набора фатальных сигналов: SIGFPE, SIGILL, SIGABORT, SIGSEGV и SIGBUS.

В некоторых операционных системах SIGQUIT также приводит к созданию дампа ядра, но не обрабатывается CoreDumpDirectory и не EnableExceptionHook обрабатывается, поэтому расположение ядра полностью определяется операционной системой.



Директива EnableExceptionHook

Описание:Включает хук, который запускает обработчики исключений после сбоя
Синтаксис: EnableExceptionHook On|Off
По умолчанию: EnableExceptionHook Off
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork

Из соображений безопасности эта директива доступна только в том случае, если сервер был настроен с этой --enable-exception-hook опцией. Он включает хук, который позволяет внешним модулям подключаться и что-то делать после сбоя дочернего элемента.

Уже есть два модуля, mod_whatkilledus и mod_backtrace они используют этот хук. Пожалуйста, посетите сайт Джеффа Трэвика EnableExceptionHook для получения дополнительной информации об этом.



Директива GracefulShutdownTimeout

Описание:Укажите тайм-аут, по истечении которого изящно остановленный сервер завершит работу.
Синтаксис: GracefulShutdownTimeout seconds
По умолчанию: GracefulShutdownTimeout 0
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork
Совместимость:Доступно в версии 2.2 и выше

Указывает GracefulShutdownTimeout , через сколько секунд после получения сигнала «грациозной остановки» сервер должен продолжать работать, обрабатывая существующие соединения.

Установка этого значения на ноль означает, что сервер будет бесконечно ждать, пока все оставшиеся запросы не будут полностью обслужены.



Директива о прослушивании

Описание:IP-адреса и порты, которые прослушивает сервер
Синтаксис: Listen [IP-address:]portnumber [protocol]
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpm_netware , mpmt_os2
Совместимость:Аргумент протокола был добавлен в версии 2.1.5.

Директива Listen предписывает Apache httpd прослушивать только определенные IP-адреса или порты; по умолчанию он отвечает на запросы на всех IP-интерфейсах. Listen теперь является обязательной директивой. Если его нет в конфигурационном файле, сервер не запустится. Это отличие от предыдущих версий Apache httpd.

Директива Listen указывает серверу принимать входящие запросы на указанный порт или комбинацию адреса и порта. Если указан только номер порта, сервер прослушивает данный порт на всех интерфейсах. Если указан IP-адрес, а также порт, сервер будет прослушивать данный порт и интерфейс.

Можно использовать несколько Listen директив, чтобы указать количество адресов и портов для прослушивания. Сервер будет отвечать на запросы с любого из перечисленных адресов и портов.

Например, чтобы сервер принимал соединения как через порт 80, так и через порт 8000, используйте:

 Слушай 80
Слушай 8000 

Чтобы сервер принимал соединения на двух указанных интерфейсах и номерах портов, используйте

 Прослушать 192.170.2.1:80
Прослушать 192.170.2.5:8000 

Адреса IPv6 должны быть заключены в квадратные скобки, как в следующем примере:

 Слушайте [2001:db8::a00:20ff:fea7:ccea]:80 

Необязательный аргумент протокола не требуется для большинства конфигураций. Если не указано, https используется по умолчанию для порта 443 и http по умолчанию для всех остальных портов. Протокол используется для определения того, какой модуль должен обрабатывать запрос, и для применения специфичных для протокола оптимизаций с помощью AcceptFilter директивы.

Вам нужно только установить протокол, если вы работаете на нестандартных портах. Например, запуск https сайта на порту 8443:

 Слушай 192.170.2.1:8443 https 

Состояние ошибки

Несколько Listen директив для одного и того же IP-адреса и порта приведут к Address already in use сообщению об ошибке.

Смотрите также

  • Проблемы с DNS
  • Настройка адресов и портов, которые использует Apache HTTP Server
  • Дальнейшее обсуждение Address already in use сообщения об ошибке, включая другие причины.


Директива ListenBackLog

Описание:Максимальная длина очереди ожидающих соединений
Синтаксис: ListenBacklog backlog
По умолчанию: ListenBacklog 511
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpm_netware , mpmt_os2

Максимальная длина очереди ожидающих соединений. Как правило, никакая настройка не требуется или нежелательна, однако в некоторых системах желательно увеличить ее при атаке с переполнением TCP SYN. См. параметр отставания в listen(2) системном вызове.

Операционная система часто ограничивает это число меньшим числом. Это зависит от ОС. Также обратите внимание, что многие операционные системы не используют именно то, что указано в качестве отставания, а используют число, основанное на (но обычно превышающем) то, что установлено.



Директива ListenCoresBucketsRatio

Описание:Соотношение между количеством ядер ЦП (в сети) и количеством сегментов слушателей
Синтаксис: ListenCoresBucketsRatio ratio
По умолчанию: ListenCoresBucketsRatio 0 (disabled)
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork
Совместимость:Доступно в Apache HTTP Server 2.4.17 с ядром, поддерживающим параметр сокета SO_REUSEPORT и равномерно распределяющим новые соединения между сокетами прослушивающих процессов (или потоков) с его использованием (например, Linux 3.9 и более поздние версии, но не текущие реализации в SO_REUSEPORT * BSD). .

Соотношение между количеством (онлайн) ядер ЦП и количеством сегментов слушателей может быть использовано для того, чтобы заставить Apache HTTP Server создавать сегменты num_cpu_cores / ratio прослушивания, каждый из которых содержит свои собственные Listen сокеты -ing на одном и том же порту (портах), а затем заставить каждого дочернего элемента обрабатывать одно ведро (с круговым распределением ведер во время создания дочерних элементов).

Значение «онлайн» ядра процессора

В Linux (а также в BSD) ядро ЦП можно включать / выключать, если настроено Hotplug, поэтому ListenCoresBucketsRatio необходимо учитывать этот параметр при расчете количества создаваемых сегментов.

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

Чтобы это было активным, должно быть как минимум вдвое больше ядер ЦП, чем настроенное соотношение . Рекомендуемое соотношение равно , поэтому при использовании этого значения во время выполнения должно быть доступно 8 как минимум количество ядер. Необходимо рассчитать 16 правильное соотношение для достижения максимальной производительности для каждой целевой системы, проверяя несколько значений и наблюдая за изменениями ваших ключевых показателей производительности.

Эта директива влияет на расчет значений нижней границы MinSpareThreads и MaxSpareThreads . Количество дочерних процессов должно быть кратно количеству сегментов, чтобы оптимально принимать соединения.

Несколько Listen HTTP-серверов ers или Apache на одном IP-адресе и порту

Следовательно , установка SO_REUSEPORT параметра для прослушивающего сокета (сокетов) позволяет нескольким процессам (совместно использующим один и тот же EUID , например root ) привязываться к одному и тому же IP-адресу и порту без ошибки привязки, вызванной системой в обычном случае.

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

В одном и том же экземпляре Apache httpd проверит и не запустится, если Listen настроено несколько директив для одного и того же IP-адреса (или имени хоста) и порта, что позволяет избежать создания некоторых дублирующих сегментов, которые были бы бесполезны и снижали производительность. Однако он не может (и не будет пытаться) уловить все возможные случаи перекрытия (например, имя хоста, разрешающееся в IP-адрес, используемый в другом месте).



Директива MaxConnectionsPerChild

Описание:Ограничение на количество подключений, которые отдельный дочерний сервер будет обрабатывать в течение своей жизни.
Синтаксис: MaxConnectionsPerChild number
По умолчанию: MaxConnectionsPerChild 0
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpm_netware , mpmt_os2
Совместимость:Доступен Apache HTTP Server 2.3.9 и выше. Старое имя MaxRequestsPerChild по-прежнему поддерживается.

Директива MaxConnectionsPerChild устанавливает ограничение на количество подключений, которые будет обрабатывать отдельный дочерний серверный процесс. После MaxConnectionsPerChild соединения дочерний процесс умрет. Если MaxConnectionsPerChild есть 0 , то процесс никогда не истечет.

Установка MaxConnectionsPerChild ненулевого значения ограничивает объем памяти, который процесс может потреблять из-за (случайной) утечки памяти.



Директива MaxMemFree

Описание:Максимальный объем памяти, который может удерживать основной распределитель без вызова free()
Синтаксис: MaxMemFree KBytes
По умолчанию: MaxMemFree 2048
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpm_netware

Директива MaxMemFree устанавливает максимальное количество свободных Кбайт, которое может удерживать каждый распределитель без вызова free() . В многопоточных MPM каждый поток имеет свой собственный распределитель. При нулевом значении порог будет установлен на неограниченный.



Директива MaxRequestWorkers

Описание:Максимальное количество подключений, которые будут обрабатываться одновременно
Синтаксис: MaxRequestWorkers number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork

Директива MaxRequestWorkers устанавливает ограничение на количество одновременных запросов, которые будут обслуживаться. Любые попытки подключения сверх MaxRequestWorkers установленного лимита обычно ставятся в очередь, вплоть до числа, определяемого директивой ListenBacklog . Как только дочерний процесс освобождается в конце другого запроса, соединение будет обслуживаться.

Для непоточных серверов ( т. е ., prefork ) MaxRequestWorkers означает максимальное количество дочерних процессов, которые будут запускаться для обслуживания запросов. Значение по умолчанию 256 : ; чтобы увеличить его, вы должны также поднять ServerLimit .

Для многопоточных и гибридных серверов ( например event , или worker ) MaxRequestWorkers ограничивает общее количество потоков, которые будут доступны для обслуживания клиентов. Для гибридных MPM значение по умолчанию равно 16 ( ServerLimit ), умноженному на значение 25 ( ThreadsPerChild ). Поэтому для увеличения MaxRequestWorkers до значения, требующего более 16 процессов, необходимо также поднять ServerLimit .

MaxRequestWorkers вызывался MaxClients до версии 2.3.13. Старое имя по-прежнему поддерживается.



Директива MaxSpareThreads

Описание:Максимальное количество простаивающих потоков
Синтаксис: MaxSpareThreads number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , mpm_netware , mpmt_os2

Максимальное количество простаивающих потоков. Различные MPM по-разному относятся к этой директиве.

Для worker и event значение по умолчанию равно MaxSpareThreads 250 . Эти MPM имеют дело с бездействующими потоками на уровне сервера. Если на сервере слишком много бездействующих потоков, то дочерние процессы уничтожаются до тех пор, пока количество бездействующих потоков не станет меньше этого числа. Дополнительные процессы/потоки могут быть созданы, если ListenCoresBucketsRatio включено.

По mpm_netware умолчанию это MaxSpareThreads 100 . Поскольку этот MPM запускает один процесс, количество резервных потоков также распространяется на весь сервер.

mpmt_os2 работает аналогично mpm_netware . Поскольку mpmt_os2 значение по умолчанию равно 10 .

Ограничения

Диапазон значений MaxSpareThreads ограничен. Apache httpd автоматически исправит данное значение в соответствии со следующими правилами:

  • mpm_netware хочет, чтобы значение было больше, чем MinSpareThreads .
  • Для worker и event значение должно быть больше или равно сумме MinSpareThreads и ThreadsPerChild .

Смотрите также

  • MinSpareThreads
  • StartServers
  • MaxSpareServers


Директива Минспаретредс

Описание:Минимальное количество простаивающих потоков, доступных для обработки всплесков запросов
Синтаксис: MinSpareThreads number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , mpm_netware , mpmt_os2

Минимальное количество простаивающих потоков для обработки всплесков запросов. Различные MPM по-разному относятся к этой директиве.

worker и event использовать значение по умолчанию MinSpareThreads 75 и работать с бездействующими потоками на уровне всего сервера. Если на сервере недостаточно простаивающих потоков, то создаются дочерние процессы до тех пор, пока количество простаивающих потоков не превысит число . Дополнительные процессы/потоки могут быть созданы, если ListenCoresBucketsRatio включено.

mpm_netware использует значение по умолчанию MinSpareThreads 10 и, поскольку это MPM с одним процессом, отслеживает это на уровне всего сервера.

mpmt_os2 работает аналогично mpm_netware . Поскольку mpmt_os2 значение по умолчанию равно 5 .

Смотрите также

  • MaxSpareThreads
  • StartServers
  • MinSpareServers


Директива PidFile

Описание:Файл, в котором сервер записывает идентификатор процесса демона.
Синтаксис: PidFile filename
По умолчанию: PidFile logs/httpd.pid
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpmt_os2

Директива PidFile устанавливает файл, в который сервер записывает идентификатор процесса демона. Если имя файла не является абсолютным, предполагается, что оно связано с расширением ServerRoot .

Пример

 PidFile /var/run/apache.pid 

Часто полезно иметь возможность послать серверу сигнал, чтобы он закрылся, а затем снова открыл свои ErrorLog и TransferLog перечитал свои конфигурационные файлы. Это делается путем отправки сигнала SIGHUP (kill -1) на идентификатор процесса, указанный в файле PidFile .

На него PidFile распространяются те же предупреждения о размещении и безопасности файла журнала.

Примечание

Что касается Apache HTTP Server 2, мы рекомендуем вам использовать только сценарий apache2ctl или сценарий инициализации, предоставляемый вашей ОС, для (повторного) запуска или остановки сервера.



Директива ReceiveBufferSize

Описание:Размер буфера приема TCP
Синтаксис: ReceiveBufferSize bytes
По умолчанию: ReceiveBufferSize 0
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpm_netware , mpmt_os2

Сервер установит размер буфера приема TCP равным указанному количеству байтов.

Если установлено значение 0 , сервер будет использовать ОС по умолчанию.



Директива ScoreBoardFile

Описание:Расположение файла, используемого для хранения данных координации для дочерних процессов
Синтаксис: ScoreBoardFile file-path
По умолчанию: ScoreBoardFile logs/apache_runtime_status
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt

HTTP-сервер Apache использует табло для связи между родительским и дочерним процессами. Для некоторых архитектур требуется файл для облегчения этой связи. Если файл не указан, Apache httpd сначала попытается создать таблицу результатов полностью в памяти (используя анонимную общую память), а в случае неудачи попытается создать файл на диске (используя файловую общую память). Указание этой директивы заставляет Apache httpd всегда создавать файл на диске.

Пример

 ScoreBoardFile /var/run/apache_runtime_status 

Совместно используемая память на основе файлов полезна для сторонних приложений, которым требуется прямой доступ к табло.

Если вы используете a ScoreBoardFile , вы можете увидеть улучшение скорости, поместив его на RAM-диск. Но будьте осторожны, прислушивайтесь к тем же предупреждениям о размещении файла журнала и безопасности.

Смотрите также

  • Остановка и перезапуск HTTP-сервера Apache


Директива SendBufferSize

Описание:Размер буфера TCP
Синтаксис: SendBufferSize bytes
По умолчанию: SendBufferSize 0
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpm_winnt , mpm_netware , mpmt_os2

Устанавливает размер буфера отправки TCP сервера равным указанному количеству байтов. Часто бывает полезно установить это значение выше стандартного значения ОС по умолчанию для высокоскоростных соединений с высокой задержкой ( например , 100 мс или около того, таких как трансконтинентальные быстрые каналы).

Если установлено значение 0 , сервер будет использовать значение по умолчанию, предоставленное вашей ОС.

Для повышения производительности на высокоскоростных соединениях с высокой задержкой может потребоваться дополнительная настройка операционной системы.

В некоторых операционных системах изменения в поведении TCP, вызванные увеличением, SendBufferSize могут быть незаметны, если только EnableSendfile для этого параметра не установлено значение OFF. Это взаимодействие применяется только к статическим файлам.



Директива ServerLimit

Описание:Верхний предел настраиваемого количества процессов
Синтаксис: ServerLimit number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork

Для prefork MPM эта директива устанавливает максимальное сконфигурированное значение для MaxRequestWorkers времени жизни процесса Apache httpd. Для MPM worker и event эта директива в сочетании с ThreadLimit задает максимальное сконфигурированное значение MaxRequestWorkers на время существования процесса Apache httpd. Для event MPM эта директива также определяет, сколько старых серверных процессов могут продолжать работать и завершать обработку открытых соединений. Любые попытки изменить эту директиву во время перезапуска будут игнорироваться, но MaxRequestWorkers могут быть изменены во время перезапуска.

При использовании этой директивы следует соблюдать особую осторожность. Если ServerLimit установлено значение намного выше необходимого, будет выделена дополнительная неиспользуемая разделяемая память. Если для обоих ServerLimit и MaxRequestWorkers установлены значения выше, чем может обрабатывать система, Apache httpd может не запуститься или система может стать нестабильной.

С prefork MPM используйте эту директиву, только если вам нужно установить MaxRequestWorkers значение выше 256 (по умолчанию). Не устанавливайте значение этой директивы выше, чем вы хотели бы установить MaxRequestWorkers .

Используйте worker эту директиву, только если ваши настройки MaxRequestWorkers и ThreadsPerChild требуют более 16 серверных процессов (по умолчанию). Не устанавливайте значение этой директивы выше, чем количество серверных процессов, необходимых для того, что вам может понадобиться для MaxRequestWorkers и ThreadsPerChild .

С помощью event , увеличьте значение этой директивы, если количество процессов, определенное вашими настройками MaxRequestWorkers и ThreadsPerChild , плюс количество изящно завершенных процессов превышает 16 серверных процессов (по умолчанию).

Примечание

Существует жесткое ограничение на ServerLimit 20000 компиляцию на сервер (для prefork MPM 200000). Это сделано для того, чтобы избежать неприятных последствий, вызванных опечатками. Чтобы еще больше увеличить его, превысив этот предел, вам потребуется изменить значение MAX_SERVER_LIMIT в исходном файле mpm и перестроить сервер.

Смотрите также

  • Остановка и перезапуск HTTP-сервера Apache


Директива StartServers

Описание:Количество дочерних серверных процессов, созданных при запуске
Синтаксис: StartServers number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , prefork , mpmt_os2

Директива StartServers устанавливает количество дочерних серверных процессов, создаваемых при запуске. Поскольку количество процессов динамически контролируется в зависимости от нагрузки (см MinSpareThreads . , MaxSpareThreads , MinSpareServers , MaxSpareServers ), обычно нет необходимости настраивать этот параметр.

Значение по умолчанию отличается от MPM к MPM. worker и event по умолчанию StartServers 3 ; prefork по умолчанию 5 ; mpmt_os2 по умолчанию 2 .



Директива StartThreads

Описание:Количество потоков, созданных при запуске
Синтаксис: StartThreads number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: mpm_netware

Количество потоков, созданных при запуске. Поскольку количество потоков динамически регулируется в зависимости от нагрузки (см MinSpareThreads . , MaxSpareThreads , MinSpareServers , MaxSpareServers ), обычно нет необходимости настраивать этот параметр.

По mpm_netware умолчанию это StartThreads 50 и, так как есть только один процесс, это общее количество потоков, созданных при запуске для обслуживания запросов.



Директива ThreadLimit

Описание:Устанавливает верхний предел настраиваемого количества потоков на дочерний процесс.
Синтаксис: ThreadLimit number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , mpm_winnt

Эта директива устанавливает максимальное сконфигурированное значение для ThreadsPerChild времени жизни процесса Apache httpd. Любые попытки изменить эту директиву во время перезапуска будут игнорироваться, но ThreadsPerChild могут быть изменены во время перезапуска до значения этой директивы.

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

Значение по умолчанию для ThreadLimit при 1920 использовании с mpm_winnt и 64 при использовании с другими.

Примечание

Существует жесткое ограничение ThreadLimit 20000 (или ThreadLimit 100000 с event , ThreadLimit 15000 с mpm_winnt ), скомпилированное на сервер. Это сделано для того, чтобы избежать неприятных последствий, вызванных опечатками. Чтобы еще больше увеличить его, превысив этот предел, вам потребуется изменить значение MAX_THREAD_LIMIT в исходном файле mpm и перестроить сервер.



Директива ThreadsPerChild

Описание:Количество потоков, созданных каждым дочерним процессом
Синтаксис: ThreadsPerChild number
По умолчанию: See usage for details
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , mpm_winnt

Эта директива устанавливает количество потоков, создаваемых каждым дочерним процессом. Ребенок создает эти потоки при запуске и больше никогда не создает. При использовании MPM, такого как mpm_winnt , где есть только один дочерний процесс, это число должно быть достаточно большим, чтобы справиться со всей нагрузкой сервера. При использовании MPM, такого как worker , где есть несколько дочерних процессов, общее количество потоков должно быть достаточно большим, чтобы справиться с общей нагрузкой на сервер.

Значение по умолчанию для ThreadsPerChild при 64 использовании с mpm_winnt и 25 при использовании с другими.



Директива ThreadStackSize

Описание:Размер в байтах стека, используемого потоками, обрабатывающими клиентские соединения.
Синтаксис: ThreadStackSize size
По умолчанию: 65536 on NetWare; varies on other operating systems
Контекст:конфигурация сервера
Положение дел:МПМ
Модуль: event , worker , mpm_winnt , mpm_netware , mpmt_os2
Совместимость:Доступно в Apache HTTP Server 2.1 и более поздних версиях.

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

  • На платформах с относительно небольшим размером стека потоков по умолчанию (например, HP-UX) Apache httpd может давать сбой при использовании некоторых сторонних модулей, которые используют относительно большой объем хранилища автоданных. Те же самые модули могли нормально работать на других платформах, где размер стека потоков по умолчанию больше. Этот тип сбоя разрешается путем установки ThreadStackSize значения выше, чем значение по умолчанию операционной системы. Этот тип настройки необходим только в том случае, если поставщик стороннего модуля указывает, что это требуется, или если диагностика сбоя Apache httpd указывает на то, что размер стека потока был слишком мал.
  • На платформах, где размер стека потоков по умолчанию значительно больше, чем необходимо для конфигурации веб-сервера, будет достижимо большее количество потоков на дочерний процесс, если ThreadStackSize установлено значение ниже, чем значение по умолчанию операционной системы. Этот тип корректировки следует выполнять только в тестовой среде, которая позволяет выполнять полный набор операций веб-сервера, поскольку могут возникать нечастые запросы, для обработки которых требуется больше стека. Минимальный требуемый размер стека сильно зависит от используемых модулей, но любое изменение в конфигурации веб-сервера может сделать текущий ThreadStackSize параметр недействительным.
  • В Linux эту директиву можно использовать только для увеличения размера стека по умолчанию, поскольку базовый системный вызов использует это значение как минимальный размер стека. ulimit -s В качестве размера стека по умолчанию используется мягкое ограничение (часто большое) (8 МБ, если оно не ограничено).
Рекомендуется не уменьшать, ThreadStackSize если только не требуется большое количество потоков на дочерний процесс. На некоторых платформах (включая Linux) значение 128000 уже слишком мало и вызывает сбои некоторых распространенных модулей.

 <         > 

Пункты:   85    86      88      89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru