Para calcular el valor del parametro MaxClients en Apache, tenemos que conocer la siguiente formula:
MaxClients = Total de la RAM del Servidor en MB / Tamaño de un proceso Apache
Para calcular lo que ocupa en memoria un proceso de apache de tu servidor utilizamos el siguiente comando:
> ps -ylC httpd
Y vemos que la columna SZ (Size) te dice el tamaño de cada petición apache. En este caso podemos ver qeu aproximadamente son 70M.
Vemos ahora mismo las peticiones Apache que tenemos actualmente:
> lsof -i | grep httpd | grep ESTABLISHED | wc -l
Podemos sacar una media calculando este valor en distintas horas del día, o coger el valor máximo para saber el uso de memoria maximo que podemos tener.
En este caso, voy a coger el valor máximo en este periodo de tiempo que son 19 peticiones.
Y podemos calcular:
Memoria RAM usada por Apache = 19 * 70M = 1330 M
Ahora ya podemos calcular el MaxClients para un servidor con 4G de memoria RAM
MaxClients = 4.000M / 70M = 57
Esta claro que este servidor sería un claro ejemplo para optimizar los procesos Apache, eliminando módulos que no se utilicen para optimizar el servidor web.
Para curarte en salud, se recomienda dejar un 20% de memoria para los procesos del sistema. Con lo que la formula final sería
MaxClients = Total de la RAM del Servidor en MB * 80% / Tamaño de un proceso Apache
Señor, gracias, pero tengo una duda.
MaxClients = 4.000M / 1330M = 3?
creo debería ser:
MaxClients = 4.000M / 70M = 57 usuarios.
Aunque se recomienda (se debe) considerar un margen (+/- 20%) para procesos del sistema;
MaxClients = 4.000M * 80% / 70M = 45 usuarios.
saludos.
tienes toda la razon ….. Gracias!!!
Lo modifico para que le pueda servir a otra gente!!!
Pingback: Linux: Ajustar el número de conexiones simultaneas en Apache | Blog de Mario Javier
Pingback: saber que proceso consume más memoria en linux | Blog de David Rodriguez