ApacheBuddy, que es muy similar a MySQLTuner, revisa tu configuración de Apache, y te hace sugerencias basadas en la cantidad de memoria que consume cada proceso Apache de tu servidor y la memoria RAM total que tengas.
Aunque es un programa bastante básico, ya que se centra solo en la directiva “MaxClients”, ApacheBuddy es útil, y se puede instalar y ejecutar de manera sencilla en el servidor teniendo acceso root mediante SSH.
“MaxClients” indica el numero máximo de peticiones que se pueden servir al mismo tiempo por el servidor, cualquier número que vaya más allá del límite se pone en cola. Si es demasiado bajo, las conexiones enviadas a la cola pueden agotar el tiempo de espera; Si es demasiado alto puedes tener problemas de memoria y empezar a usar la memoria SWAP del servidor. En Linode.com tenéis una buena explicación de todos los parámetros.
Cómo instalar y usar Apachebuddy para optimizar Apache
1.-Descargamos ApacheBuddy:
wget https://raw.github.com/gusmaskowitz/apachebuddy.pl/master/apachebuddy.pl
2.-Le damos permisos de ejecución:
chmod +x apachebuddy.pl
y ejecutamos el script para que revise nuestra configuración de Apache:
./apachebuddy.pl
3.-Y lo que vamos a obtener es algo como esto:
donde podemos ver unas cuantas cosas importantes:
- Cuanta memoria RAM usa cada proceso de Apache en nuestro servidor (máximo, mínimo y media): 28,13MB, 20,21MB, 26.45MB
- Cuanta memoria RAM puede usar potencialmente Apache (máxima y media): 529MB y 562.61MB de RAM (alrededor de un 20% de la memoria RAM total del servidor)
En el archivo /etc/httpd/conf/httpd.conf, que es donde se encuentra la configuración de Apache en CENTOS, podemos cambiar el parámetro MaxClients en función de la recomendación del programa. En este caso, al tener “20” y alcanzar solo el 21% de la memoria RAM total del sistema, ApacheBuddy ha considerado que el ajuste es correcto.
Un problema muy común de las configuraciones por defecto de Apache es que suelen dejar MaxClients=150, y eso no hay servidor con 2GB de RAM que lo soporte en un pico de visitas. Tened en cuenta que además de Apache, el servidor tiene que manejar MYSQL (digamos que usa el 50% o 60% de la memoria RAM del servidor) y tu panel de control (cPanel/WHM puede llevar a consumir 512MB mínimo -otro 20%- y Virtualmin unos 100MB), así que no podemos dejar que en un pico de visitas Apache use toda la memoria RAM. Sí dejas MaxClients en 150, cuando tengas muchas visitas el servidor no lo va a aguantar… mejor que esperen en la cola…