<-
Apache > Servidor HTTP > Documentaci�n > Versi�n 2.0 > M�dulos

MPM de Apache worker

Idiomas disponibles:  de  |  en  |  es  |  ja 

Esta traducci�n podr�a estar obsoleta. Consulte la versi�n en ingl�s de la documentaci�n para comprobar si se han producido cambios recientemente.
Descripci�n:M�dulo de MultiProcesamiento que implementa un servidor web h�brido multihebra-multiproceso
Estado:MPM
Identificador de M�dulos:mpm_worker_module
Fichero de C�digo Fuente:worker.c

Resumen de contenidos

Este M�dulo de MultiProcesamiento (MPM) implementa un servidor h�brido multiproceso-multihebra. Usando hebras para atender peticiones, el servidor puede servir un mayor n�mero de peticiones con menos recursos de sistema que un servidor basado �nicamente en procesos. No obtante, se mantiene casi por completo la estabilidad de un servidor basado en procesos manteniendo la capacidad multiproceso, pudiendo cada proceso tener muchas hebras.

Las directivas m�s importantes que se usan para controlar este MPM son ThreadsPerChild, que controla el n�mero de hebras que tiene cada proceso hijo y MaxClients, que controla el n�mero m�ximo de hebras que pueden crearse.

Directivas

Temas

Consulte tambi�n

top

C�mo funciona

Un solo proceso de control (el padre) es el responsable de crear los procesos hijo. Cada proceso hijo crea un n�mero fijo de hebras del servidor de la forma que se especifica en la directiva ThreadsPerChild, as� como una hebra de escucha que escuchar� si se producen peticiones y las pasar� a una hebra del servidor para que la procese.

Apache siempre intenta mantener en reserva cierto n�mero de hebras de sobra o en espera, que est�n preparadas para servir peticiones en el momento en que lleguen. As�, los clientes no tienen que esperar a que se creen nuevas hebras o procesos para que sean atendidas sus peticiones. El n�mero de procesos que se crean al principio est� determinado por la directiva StartServers. Despu�s durante el funcionamiento del servidor, Apache calcula el n�mero total de hebras en espera entre todos los procesos, y crea o elimina procesos para mantener ese n�mero dentro de los l�mites especificados en las directivas MinSpareThreads y MaxSpareThreads. Como este proceso est� bastante autorregulado, no es muy habitual que sea necesario modificar los valores que estas directivas traen por defecto. El n�mero m�ximo de clientes que pueden ser servidos simult�neamente (por ejemplo, el n�mero m�ximo de hebras entre todos los procesos) est� determinado por la directiva MaxClients. El n�mero m�ximo de procesos hijo activos est� determinado por el valor especificado en la directiva MaxClients dividido por el valor especificado en la directiva ThreadsPerChild.

Hay dos directivas que establecen l�mites estrictos al n�mero de procesos hijo activos y al n�mero de hebras del servidor en un proceso hijo, y puede cambiarse solo parando completamente el servidor y volviendo a iniciarlo. La directiva ServerLimit marca el l�mite estricto de procesos hijo activos posibles, y debe ser mayor o igual al valor de la directiva MaxClients dividido por el valor de la directiva ThreadsPerChild. El valor de la directiva ThreadLimit es el l�mite estricto del n�mero de hebras del servidor, y debe ser mayor o igual al valor de la directiva ThreadsPerChild. Si los valores de esas directivas no son los que vienen por defecto, deben aparecer antes que el resto de directivas del m�dulo worker.

Adem�s del conjunto de procesos hijo activos, puede haber otros procesos hijo que est�n terminando pero en los que al menos una hebra del servidor est� todav�a tratando una conexi�n con un cliente. Puede haber hasta MaxClients procesos terminando, aunque el n�mero real de estos procesos que puede esperarse es mucho menor. Este comportamiento puede evitarse desactivando la eliminaci�n individual de procesos hijo, lo que se hace de la siguiente manera:

Una configuraci�n t�pica del sistema de control de procesos y hebras del m�dulo de MPM worker prodr�a ser como sigue:

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

Mientras que el proceso padre se inicia con privilegios de usuario root en Unix para usar el puerto de escucha 80, los procesos hijo y las hebras se inician con menores privilegios de usuario. Las directivas User y Group se usan para determinar los privilegios con los que se iniciar�n los procesos hijo. Los procesos hijo deben ser capaces de leer los contenidos que van a servir, pero solo los permisos extrictamente necesarios para cumplir su tarea. Adem�s. a menos que se use suexec, los privilegios fijados en estas directivas son los que que van a heredar los scripts CGI.

La directiva MaxRequestsPerChild controla con qu� frecuencia el servidor recicla los procesos eliminando los antiguos y creando nuevos.

Idiomas disponibles:  de  |  en  |  es  |  ja