Optimizar la cantidad de clientes que atiende Apache

De Master Solutions Wiki
Saltar a: navegación, buscar

Contenido

Introduccion

El Servidor apache viene. configurado para atender 150 clientes, que a veces no es suficiente. Mostraremos como calcular la cantidad máxima que puede atender en función a las capacidades de nuestro equipo

Calculo de RAM por procesos apache

ps -ylC httpd-prefork --sort:rss | awk '{SUM += $8; I += 1} END {print SUM/I/1024}'

Supongamos 21Mb

Este valor se expresa en Megabytes

Calculo de RAM de los demas procesos

ps -N -ylC httpd-prefork --sort:rss | awk '{SUM += $8} END {print SUM/1024}'

Supongamos 1.400Mb

Calculo de cantidad de conexiones

Si por ejemplo nuestro servidor tiene 16Gb de RAM el calculo será el siguiente

(RAM del servidor - RAM de procesos no apache) / RAM por conexión Apache = Cantidad de clientes
(16384 - 1400) / 21 = 713

De esto tomamos un 70% lo que nos da unas 500 conexiones

Configurar apache

Apache por defecto tiene configurado el modulo de la siguiente forma:

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>

Lo modificamos para que queda de la siguiente forma:

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 500
MaxClients 470
MaxRequestsPerChild 0
</IfModule>

Digamos que hicimos un configuración a la "defensiva"

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas
Procedimientos
Procesos
Indicadores
Items de Configuración
Imprimir/exportar