<-
Apache > HTTP Server > Documentation > Version 2.0 > Modules

Apache рабочий MPM

Description: Мультиобработка Модуля, осуществляя гибрид мультипронизывала сервер сети мультипроцесса
Status: MPM
Module Identifier: mpm_worker_module
Source File: worker.c

резюме

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

самые важные директивы, используемые, чтобы управлять этим MPM ThreadsPerChild , который управляет числом нитей, развернутых каждым детским процессом и MaxClients , который управляет максимальным общим количеством нитей, которые могут быть начаты.

директивы

темы

см. также

top

How it Works

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

Apache всегда пробует поддержать объединение запчасть или праздные нити сервера, которые готовы служить поступающим запросам. Таким образом, клиенты не должны ждать новых нитей или процессов, которые будут созданы прежде, чем их запросам можно служить. Число процессов, которые будут первоначально начатый, установлено StartServers директива. Тогда в течение операции, Apache оценивает общее количество праздных нитей во всех процессах, и вилках или убивает процессы, чтобы держать это число в пределах границ определенным MinSpareThreads и MaxSpareThreads . так как этот процесс очень автономен, редко необходимо изменить эти директивы от их ценностей по умолчанию. Максимальное число клиентов, которым можно служить одновременно (то есть, максимальное общее количество нитей во всех процессах) определено MaxClients директива. Максимальное число активных детских процессов определено MaxClients директива, разделенная на ThreadsPerChild директива.

две директивы устанавливают трудно пределы на числе активных детских процессов и числа нитей сервера в детском процессе, и могут только быть изменены, полностью останавливая сервер и затем начиная это снова. ServerLimit является твердым пределом на числе активных детских процессов, и должен быть больше чем или равным MaxClients директива, разделенная на ThreadsPerChild директива. ThreadLimit является твердым пределом числа нитей сервера, и должен быть больше чем или равным ThreadsPerChild директива. Если ценности не по умолчанию определены для этих директив, они должны появиться перед другим worker директивы.

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

типичная конфигурация нити процесса управляет в worker MPM могло смотреть следующим образом:

ServerLimit 16
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25

в то время как родительский процесс обычно начинается как root под Unix, чтобы связывать, чтобы держать в строевой стойке 80, детские процессы и нити начаты Apache как менее - привилегированный пользователь. User и Group директивы используются, чтобы установить привилегии Apacheских детских процессов. Детские процессы должны быть в состоянии прочитать все содержание, которому будут служить, но должен иметь как немного привилегий кроме того насколько возможно. Кроме того, если suexec используется, эти директивы также устанавливают привилегии, которые будут унаследованы подлинниками CGI.

MaxRequestsPerChild средства управления, как часто сервер перерабатывает процессы, убивая старые и начиная новые.