prefork - Servidor HTTP Apache

Apache Server 2.0

<-

MPM de Apache prefork

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: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.

top

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.

top

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

top

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.

Consulte también