¿Cómo monitorear las métricas de rendimiento del servidor web Apache?

Apache, el software de servidor web más popular del mundo, alimenta aproximadamente el 30,2% de todos los sitios web activos. Conocido por su fiabilidad, flexibilidad y solidez, Apache ha sido la columna vertebral de Internet durante décadas. Desde pequeños blogs personales hasta plataformas de comercio electrónico a gran escala, la versatilidad de Apache le permite manejar una amplia gama de aplicaciones web con facilidad.

En este blog, echaremos un vistazo al funcionamiento interno del servidor web Apache, exploraremos las métricas esenciales para el monitoreo de Apache y descubriremos estrategias de optimización para garantizar que su servidor web funcione con la máxima eficacia.

¿Cómo funciona el servidor web Apache?

Apache monitoring: ManageEngine Applications Manager

Aunque los servidores web implican procesos intrincados, su función fundamental sigue siendo la misma: aceptar las solicitudes entrantes y entregar en respuesta los componentes correspondientes de la página web. Apache se destaca en este aspecto al permitir una comunicación cliente-servidor segura a través de HTTP/HTTPS. La configuración de Apache se gestiona a través de sus archivos de configuración, donde los módulos juegan un papel fundamental para controlar su comportamiento. Estos versátiles módulos pueden adaptarse a tareas como el almacenamiento en caché, la encriptación, la reescritura de URL, etc.

Aquí es donde Apache realmente brilla: escucha las solicitudes entrantes utilizando la directiva “Escuchar”. Esta directiva especifica el puerto en el que Apache debe esperar las conexiones entrantes. Por defecto, Apache utiliza el puerto 80 con la directiva “Escuchar”, pero se puede configurar para que escuche en puertos diferentes para dominios individuales, lo que permite alojar varios sitios web en un único servidor. Cuando el mensaje llega a su destino con éxito, el protocolo TCP/IP subyacente reconoce que la transferencia de datos se ha realizado correctamente.

Métricas esenciales de Apache: Qué monitorear y por qué

Apache monitoring tool: ManageEngine Applications Manager

Métricas de rendimiento

  1. Tiempo de procesamiento de la solicitud: Los tiempos de procesamiento lentos pueden indicar cuellos de botella dentro de su pila de aplicaciones web. A veces, puede que el propio Apache no sea el culpable. Podría deberse a la lentitud en las consultas a la base de datos, lentitud en la ejecución del código PHP o limitaciones de recursos en el servidor. Al monitorear el tiempo de procesamiento de las solicitudes, puede aislar los problemas e identificar el componente específico que causa los retrasos.

Acciones que puede emprender en función del tiempo de procesamiento

Alto tiempo de procesamiento

∙ Investigue otros componentes: Analice las consultas a la base de datos, la ejecución del código PHP y el uso general de los recursos del servidor para localizar la fuente exacta de la ralentización.

∙ Revise KeepAliveTimeout: Un parámetro KeepAliveTimeout alto puede mantener los hilos de trabajadores ocupados durante largos periodos, incluso cuando los clientes no estén utilizando activamente la conexión. Reducirlo con precaución puede liberar hilos de trabajadores y mejorar la capacidad de respuesta, pero tenga en cuenta los posibles inconvenientes, como una mayor frecuencia en el restablecimiento de la conexión.

Bajo tiempo de procesamiento

∙ Tenga cuidado con los falsos positivos: Los tiempos de procesamiento extremadamente bajos no siempre son ideales. Esto podría indicar que a sus páginas les falta contenido dinámico o funcionalidades básicas. Analice si el contenido cumple los requisitos de su sitio web. Comprenda si sus páginas estáticas deben ser sencillas o si deben tener elementos más dinámicos.

∙ Revise las prácticas de optimización: Unos tiempos de procesamiento muy bajos tras las optimizaciones sugieren una posible sobre-optimización. Es imperativo evaluar si se pueden reducir las optimizaciones innecesarias, logrando así un equilibrio entre el rendimiento y la utilización eficiente de los recursos.

2. Solicitudes por minuto: El número de solicitudes por minuto (RPM) que puede gestionar Apache depende de varios factores como el hardware del servidor, la configuración y la naturaleza de las solicitudes. Aunque en teoría Apache puede manejar cientos o incluso miles de RPM, el número real depende de su configuración y de la carga de trabajo. Algunos factores como el tamaño de la solicitud, la complejidad del código del servidor y los recursos disponibles del sistema contribuyen a determinar su capacidad real.
Monitorear el número de RPM del servidor Apache puede ayudarle a identificar situaciones que requieran su atención inmediata. Al supervisar las RPM, puede obtener información valiosa sobre la salud de su servidor. Un aumento constante de las RPM podría indicar que su servidor se está acercando a su máxima capacidad y podría necesitar recursos adicionales (CPU, memoria) para mantener un rendimiento óptimo. Por el contrario, una caída repentina de las RPM puede ser una señal de alarma de problemas en el servidor, como un intercambio excesivo de discos o fallos de la base de datos. Al monitorear el número de RPM y comprender sus implicaciones, puede identificar posibles problemas en una fase temprana y tomar medidas para solucionarlos antes de que afecten a sus usuarios.

3. Disponibilidad: Se ha demostrado históricamente que las interrupciones del servicio tienden a tener un efecto extremo en los usuarios finales, por lo que es primordial monitorear la disponibilidad de Apache. Se pueden tomar varias medidas para lograr una alta disponibilidad de su servidor web Apache:
  a) Equilibrio de carga: Distribuya el tráfico entrante entre varios servidores Apache, evitando así la sobrecarga de un único servidor. Esto garantiza la continuidad del servicio incluso si un servidor experimenta problemas.

Apache server monitoring: ManageEngine Applications Manager

  b) Agrupación: Configure varios servidores Apache para que trabajen juntos como un clúster. En caso de fallo del servidor, otro servidor puede reemplazarlo sin problemas para minimizar el tiempo de inactividad.

Apache web server monitoring: ManageEngine Applications Manager

   c) Mantenimiento y actualizaciones regulares: Programe tareas de mantenimiento regulares como actualizaciones de software y parches de seguridad. Realice estas tareas durante las horas de menor actividad para minimizar las interrupciones.

Además, implementar una óptima herramienta de monitoreo del servidor Apache puede ayudarle a obtener visibilidad de la disponibilidad general y la salud de su servidor web de forma periódica, garantizando su rendimiento óptimo.

Métricas del recurso

∙ Métricas del recurso del trabajador: Las métricas del recurso del trabajador son aspectos esenciales del monitoreo del servidor Apache, ya que representan los procesos o hilos responsables de gestionar las solicitudes entrantes. Monitorear las métricas del recurso del trabajador, como los trabajadores ocupados y los inactivos, le ayudará a comprender si sus recursos están siendo sobreutilizados o infrautilizados. Algunas estrategias que ayudarán a optimizar el uso de los trabajadores incluyen analizar el consumo de recursos, optimizar el código y considerar el escalamiento del servidor.

Impacto de los trabajadores inactivos y ocupados

  1. Trabajadores inactivos: Un pequeño número de trabajadores inactivos suele ser aceptable, ya que esto indica que hay cierta capacidad sobrante para afrontar los picos de tráfico repentinos. Sin embargo, un número excesivo de trabajadores inactivos puede consumir recursos de memoria y CPU sin contribuir a la gestión de los recursos. Por ejemplo, si la directiva MaxRequestWorkers se establece demasiado alta, Apache puede crear más procesos de trabajadores de los necesarios, con el consiguiente desperdicio de recursos. Para optimizarlo, puede ajustar la directiva MaxRequestWorkers a un valor apropiado basado en los recursos del servidor y el tráfico esperado.

  2. Trabajadores ocupados: Cuando todos los trabajadores están ocupados atendiendo solicitudes, las solicitudes entrantes pueden quedar en cola, lo que resulta en tiempos de respuesta más largos para los usuarios. Esto puede dar lugar a una experiencia de usuario degradada y a posibles tiempos de espera. Optimizar MaxRequestWorkers ayudará a garantizar que el servidor pueda manejar la carga de trabajo prevista sin poner en cola demasiadas solicitudes.

∙ Conexiones: Monitorear las conexiones en su servidor web Apache es vital para mantener el rendimiento, identificar posibles problemas y garantizar la salud general del servidor web. Así es cómo el controlar los diferentes tipos de conexión proporciona información valiosa:

  1. Comprender la carga del servidor: Supervisar las conexiones totales y asíncronas le ayudará a hacerse una idea general de la carga del servidor y a identificar si las operaciones asíncronas están consumiendo recursos excesivos, respectivamente.

  2. Optimizar el uso de los recursos: Las conexiones de escritura se utilizan para enviar datos a los clientes. Controlar su volumen ayuda a evaluar el uso del ancho de banda y a identificar posibles cuellos de botella. Por ejemplo, si las conexiones de escritura alcanzan constantemente su punto máximo, podría sugerir que hay un ancho de banda insuficiente o ineficiencias en el código del servidor que causan una transferencia de datos lenta.

  3. Mejorar la experiencia del usuario: Las conexiones keep-alive permiten enviar varias solicitudes a través de una única conexión, lo que reduce la sobrecarga de la negociación y mejora el rendimiento. Controlar esto ayuda a garantizar que las conexiones funcionan correctamente y contribuyen a tiempos de respuesta más rápidos.

  4. Depurar y solucionar problemas: Monitorear las tasas de cierre de las conexiones ayuda a identificar posibles problemas como desconexiones abruptas de los clientes o errores del lado del servidor que podrían terminar prematuramente las conexiones. Un alto índice de cierre de conexiones sin una terminación adecuada podría significar fallos en la aplicación o problemas de conectividad en la red.

Métricas del sistema

∙ Carga del sistema: Monitorear la carga del sistema en el servidor web Apache es crucial para garantizar un rendimiento óptimo y una gestión eficaz de las solicitudes. La carga del sistema indica la carga de trabajo de la CPU del servidor y representa el número medio de procesos en estado ejecutable o ininterrumpible. Los promedios de carga se calculan en diferentes intervalos de tiempo (uno, cinco y 15 minutos) para entender con precisión el comportamiento del sistema.

El monitoreo del servidor web Apache ayuda a identificar una carga elevada del sistema, que a menudo sugiere una gran demanda, lo que puede provocar tiempos de respuesta más lentos. Esta métrica se suele utilizar para identificar cuellos de botella, planificar actualizaciones o escalamientos y garantizar que el servidor funciona dentro de su capacidad.

Comparación de los servidores web más populares: Apache vs. Nginx vs. IIS

A menudo, Apache se compara con otros servidores web populares como IIS, Nginx e IIS, cada uno de los cuales tiene sus ventajas únicas. La elección entre el servidor web Apache, Nginx o IIS depende normalmente de sus necesidades y prioridades específicas. Sin embargo, debe tener en cuenta algunos de los factores antes de hacer su elección: arquitectura básica, rendimiento, configuración, seguridad, etc. Aquí hay una tabla que le ayudará a decidir:

Función

Apache

Nginx

IIS

Resumen

Apache es un software de código abierto que gestiona las solicitudes de los clientes y sirve contenidos web a través de HTTP/HTTPS. Es un componente de la pila LAMP, lo que garantiza la compatibilidad con una amplia gama de lenguajes de programación, sistemas de gestión de contenidos y marcos web.

Nginx es un popular servidor web que funciona como servidor proxy inverso, equilibrador de carga y caché HTTP/HTTPS. Diseñado inicialmente para resolver el problema de C10K, este servidor web es bien conocido por su capacidad para gestionar grandes volúmenes de tráfico y escalar eficazmente con un hardware mínimo. Es un componente clave de la pila web LEMP, que es una alternativa al entorno LAMP.

Creado por Microsoft para ser utilizado en servidores Windows, IIS es compatible con varios protocolos como HTTP, HTTPS, FTP, SMTP, entre otros, lo que lo hace versátil para diferentes servicios web. También ofrece funciones como medidas de seguridad integradas, filtrado de solicitudes, pools de aplicaciones para gestionar aplicaciones web, y más.

Manejo de las conexiones

Apache crea un único hilo y varios procesos para gestionar cada solicitud de conexión. Sin embargo, esto conlleva un gran consumo de recursos, lo que repercute en la velocidad. Para evitar que esto ocurra, Apache proporciona varios módulos de multiprocesamiento (MPM) como mpm_prefork, mpm_worker y mpm_event que determinan cómo se pueden aceptar y gestionar las solicitudes HTTP.

Nginx utiliza una arquitectura maestro-trabajador para gestionar las conexiones. Este modelo basado en eventos aprovecha el bucle de eventos para gestionar las conexiones sin crear nuevos hilos para cada una de ellas. Esto ayuda a Nginx a procesar múltiples solicitudes simultáneamente, lo que lo hace ideal para sitios web de alto tráfico y redes de distribución de contenidos populares como MaxCDN, Cloudflare, etc.

IIS sigue un modelo de proceso de trabajador flexible en el que puede configurar el número de procesos de trabajador para optimizar el uso de recursos y el rendimiento.
Las versiones modernas de IIS admiten operaciones asíncronas para tareas específicas, lo que mejora la eficacia de determinadas solicitudes. Aunque el servidor web puede consumir bastantes recursos, proporciona un mayor control y adaptabilidad para diversas cargas de trabajo del servidor, lo que lo hace adecuado para alojar sitios web dinámicos.

Configuración y seguridad

Los servidores web Apache utilizan archivos .htaccess para la configuración por directorio, lo que permite a los usuarios sin privilegios controlar ajustes específicos del sitio web sin tener acceso directo a los archivos de configuración principales. Apache también garantiza la seguridad del servidor web implementando parámetros de configuración para evitar ataques DoS.

Las configuraciones a nivel de directorio no son compatibles con Nginx. Aunque Nginx proporciona funciones de seguridad predeterminadas, su versión premium, Nginx Plus, mejora la seguridad con la capacidad de gestionar múltiples sitios web y aplicaciones utilizando un único conjunto de credenciales.

IIS se basa en una herramienta de administración central para la configuración, ofreciendo un control más granular pero requiriendo privilegios administrativos. Además de la prevención de DoS, IIS también admite funciones como el filtrado de solicitudes y la autenticación de usuarios para mejorar la seguridad.

Ventajas y desventajas

Apache ofrece un fuerte apoyo comunitario, mayor seguridad y módulos flexibles. Sin embargo, entre sus desventajas se encuentran el consumo intensivo de recursos y los complejos requisitos de configuración.

Nginx es popular por su velocidad y por ser un eficaz servidor proxy inverso. Al ser un servidor basado en eventos, permite un alto rendimiento y escalabilidad. El apoyo limitado de la plataforma y de la comunidad es un inconveniente.

IIS se integra fácilmente con servicios de Microsoft como Active Directory, Microsoft SQL, etc. Sin embargo, no es tan personalizable como los servidores web de código abierto.

Costo

Apache es un servidor web gratuito y de código abierto que no requiere pago de licencia.

Nginx es un servidor web gratuito y de código abierto.

IIS viene incluido con una licencia de Windows Server.

Independientemente del servidor web que elija, Applications Manager le ofrece una solución completa para monitorear y gestionar su infraestructura web. Compatible con Apache, Nginx, IIS y otros servidores web populares, Applications Manager ofrece información en tiempo real sobre métricas clave de rendimiento, utilización de recursos, disponibilidad y mucho más. ¡Para saber cómo puede ayudarle nuestro producto, descargue una prueba gratis por 30 días o programe hoy mismo una demostración personalizada con uno de nuestros expertos!