Versión 2.0 del Servidor HTTP Apache
MPM de Apache prefork
Descripción: | Implementa un servidor web pre-forking y no hebrado |
---|---|
Estado: | MPM |
Identificador de Módulos: | mpm_prefork_module |
Fichero de Código Fuente: | prefork.c |
Resumen de contenidos
Este Módulo de MultiProcesamiento (MPM) implementa un servidor web pre-forking y no hebrado que trata las peticiones de una manera similar a como lo hacía Apache 1.3. Esto es apropiado para sitios web que necesitan evitar el hebrado para ser compatibles con librerías que no son seguras cuado se usan hebras. Es también el mejor MPM para aislar cada petición, de manera que si suge un problema con una petición, esto no afecte al resto.
Este MPM está muy autorregulado, de manera que muy pocas
veces es necesario ajustar los valores de sus directivas de
configuración. El valor que se fije en la directiva
MaxClients
debe ser lo
suficientemente grande para tratar tantas peticiones
simultáneas como espere recibir su sitio web, pero lo
suficientemente pequeño para asegurarse de que hay memoria
RAM suficiente para todos los procesos.
Consulte también
Cómo funciona
Un solo proceso de control es el responsable de lanzar los procesos hijo que escuchan las peticiones que se puedan producir y las sirven cuando llegan. Apache siempre intenta mantener varios procesos de sobra o en espera, que estén disponibles para servir peticiones cuando lleguen. Así, los clientes no tienen que esperar a que un nuevo proceso hijo sea creado para ser atendidos.
Las directivas StartServers
, MinSpareServers
, MaxSpareServers
, y MaxClients
regulan la forma en que
el proceso padre crea hijos para servir peticiones. En general,
Apache funciona bien sin hacer muchas modificaciones en los
valores por defecto de estas directivas, de manera que la mayor
parte de los sitios web no necesitan ajustar esas directivas a
valores diferentes. Los sitios web que necesiten servir más
de 256 peticiones simultáneas pueden necesitar incrementar el
valor de MaxClients
,
mientras que los sitios web con memoria limitada pueden necesitar
decrementar MaxClients
para evitar que el rendimiento del servidor se degrade (pasando
los contenidos de memoria al disco y de vuelta a memoria). Puede
obtener más información sobre como mejorar el
rendimiento del proceso de creación de procesos en la
documentación sobre mejora
del rendimiento.
El proceso padre de Apache se inicia normalmente como usuario
root
en Unix para que escuche en el puerto 80, sin
embargo, los procesos hijo se crean con menores privilegios de
usuario. Las directivas User
y Group
se usan para determinar los
privilegios de los procesos hijo de Apache. Los procesos hijo
deben ser capaces de leer todos los contenidos que van a servir,
pero deben tener los menores privilegios posibles.
La directiva MaxRequestsPerChild
controla
cómo el servidor recicla frecuentemente los procesos
eliminando los antiguos y creando nuevos.
MaxSpareServers Directiva
Descripción: | Número máximo de procesos hijo en espera que puede tener el servdor |
---|---|
Sintaxis: | MaxSpareServers number |
Valor por defecto: | MaxSpareServers 10 |
Contexto: | server config |
Estado: | MPM |
Módulo: | prefork |
La directiva MaxSpareServers
determina
el número máximo de procesos hijo en espera
deseado. Un proceso en espera es aquel que no está atendiendo
ninguna petición. Si hay más de
MaxSpareServers
procesos hijo en espera,
entonces el proceso padre elimina el exceso.
Ajustar este parámetro debe ser necesario solo en sitios
web con muchas visitas. Fijar un valor alto para este
parámetro es una mala idea casi siempre. Si fija un valor por
debajo de MinSpareServers
,
Apache ajustará automáticamente el valor a MinSpareServers
+ 1
.
Consulte también
MinSpareServers Directiva
Descripción: | Número mínimo de procesos hijo en espera |
---|---|
Sintaxis: | MinSpareServers number |
Valor por defecto: | MinSpareServers 5 |
Contexto: | server config |
Estado: | MPM |
Módulo: | prefork |
La directiva MinSpareServers
fija el
número mínimo de procesos hijo en espera. Un
proceso en espera es aquel que no está atendiendo ninguna
petición. Si hay menos procesos hijo en espera que
MinSpareServers
, entonces el proceso padre
crea nuevos procesos hijo a un ritmo máximo de uno por
segundo.
Ajustar este parámetro debe ser necesario solo en sitios web con muchas visitas. Fijar un valor alto para este parámetro es una mala idea casi siempre.