Apache es una implementación de servidor web de código abierto y es el servidor web más popular en todo el mundo. Casi el 70% de los servidores web en Internet utilizan Apache. Si bien podemos mejorar el rendimiento del servidor Apache al agregar hardware adicional como RAM, CPU, etc., también podemos lograr el mismo resultado al personalizar la configuración de Apache.
Esta publicación explica cómo mejorar el rendimiento de Apache sin agregar recursos de hardware adicionales a su sistema.
Nota: esta guía está realizada en un servidor Ubuntu 14.04 14.04.
MaxKeepAliveSolicitudes
MaxKeepAliveRequests limita la cantidad de solicitudes permitidas por conexión. Se utiliza para controlar conexiones persistentes. En Ubuntu, el valor predeterminado de MaxKeepAliveRequests
es 100
. Puede cambiarlo a cualquier valor que desee. El valor recomendado de MaxKeepAliveRequests
está entre 50 y 75.
Puede cambiar este valor editando el archivo de configuración de Apache.
sudo nano /etc/apache2/apache2.conf
Cambie el valor de 100 a 60.
Guarde el archivo y reinicie Apache.
sudo /etc/init.d/apache2 restart
Mantener con vida el tiempo de espera
KeepAliveTimeout define cuánto tiempo espera el servidor la nueva solicitud de los clientes conectados. Establecer KeepAliveTimeout en un valor alto puede causar problemas de rendimiento en un servidor web muy cargado. En Ubuntu, el valor predeterminado de KeepAliveTimeout
es 15
. El valor recomendado de KeepAliveTimeout
está entre 1 y 5.
Puede cambiar este valor editando el archivo de configuración de Apache.
sudo nano /etc/apache2/apache2.conf
Cambie el valor de 15 a 3.
Guarde el archivo y reinicie Apache.
Clientes maximos
Establece el límite en el número de conexiones simultáneas que serán atendidas. Cada nueva solicitud de conexión se pondrá en cola después de este límite. Una vez que se libera un proceso, se atenderá la conexión en cola. En Ubuntu, el valor predeterminado MaxClients
el valor es 250
. Se recomienda mantener este valor en 150
.
Puede cambiar este valor editando el archivo “mpm_prefork.conf”.
sudo nano /etc/apache2/mods-available/mpm_prefork.conf
Cambie el valor de 250 a 150.
Guarde el archivo y reinicie Apache.
MaxConnectionsPerChild
Se utiliza para reciclar procesos. Cuando este límite se establece en 0
, se permite una cantidad ilimitada de solicitudes por proceso. MaxConnectionsPerChild establece el límite en la cantidad de solicitudes que manejará un proceso secundario individual. Después de que alcance el límite especificado, el proceso secundario morirá. En Ubuntu, el valor predeterminado MaxConnectionsPerChild
el valor es 100
.
Los valores recomendados para esta configuración son:
- servidor virtualizado 300
- servidor con 1-4GB RAM 500
- servidor con 4+GB RAM 1000
Puede cambiar este valor editando el archivo “mpm_prefork.conf”.
sudo nano /etc/apache2/mods-available/mpm_prefork.conf
Cambie el valor de 100 a 300.
MaxConnectionsPerChild 300
Guarde el archivo y reinicie Apache.
Mantener viva
De forma predeterminada, esta configuración se establece en On
en Ubuntu. Cuando el servidor Apache recibe solicitudes de cientos y miles de direcciones IP a la vez, esta configuración debe ser Off
. Se recomienda deshabilitar esta configuración para aumentar el rendimiento de la conexión.
Puede deshabilitar esta configuración editando el archivo de configuración de Apache.
sudo nano /etc/apache2/apache2.conf
Cambiar el valor de On
a Off.
Guarde el archivo y reinicie Apache.
MinSpareServers y MaxSpareServers
Establece el número mínimo y máximo deseado de procesos de servidor secundario inactivos. Controla cuántos procesos secundarios no utilizados Apache mantendrá vivos mientras espera más solicitudes para ponerlos en uso. Cada proceso secundario consume recursos, por lo que si configura el MaxSpareServers
valor demasiado alto, entonces puede causar problemas de recursos.
Los valores recomendados para MinSpareServers
son:
- servidor virtualizado 5
- servidor con 1-2 GB de RAM 10
- servidor con 2-4 GB de RAM 20
- servidor con 4+ GB de RAM 25
Los valores recomendados para el MaxSpareServers
el valor debe establecerse como el doble del MinSpareServers
.
Puedes cambiar el MinSpareServers
valor a 5
y el MaxSpareServers
valor a 10
editando el archivo “mpm_prefork.conf”.
sudo nano /etc/apache2/mods-available/mpm_prefork.conf
MinSpareServers 5 MaxSpareServers 10
Guarde el archivo y reinicie Apache.
Conclusión
Configurar Apache para obtener el máximo rendimiento es muy fácil. También puede comprender los requisitos del servidor web y probar con varias opciones disponibles. Encontrará más consejos para optimizar Apache en mi próxima publicación. Siéntase libre de comentar si tiene alguna pregunta.