El impacto de los reinicios elegantes de Apache y la experiencia del usuario

10

¿Es seguro realizar un gracefulreinicio de Apache en un servidor de producción? ¿Qué efectos causará un reinicio elegante y cuál sería el impacto (si lo hubiera)? ¿Habrá algún impacto perjudicial (por ejemplo, tiempo de inactividad, incluso si es por poco tiempo)?

He considerado los siguientes recursos, pero aún no está claro cuáles serán los impactos en los usuarios:

stellarchariot
fuente

Respuestas:

9

Al realizar un reinicio correcto, las conexiones existentes deben ejecutarse hasta su finalización normal, momento en el cual sus trabajadores terminarán. Los nuevos trabajadores ya deberían comenzar a manejar nuevas conexiones.

No debería notar fallas en la conexión o cargas lentas de página, pero en la práctica puede ver brevemente la cola de conexiones nuevas mientras el hilo maestro vuelve a cargar la configuración (la mía tarda menos de medio segundo)

Si está reiniciando para elegir una nueva configuración, existe el riesgo de que se produzca un error de configuración que podría impedir que el servidor se reinicie correctamente.

Si el servidor está en un estado anormal, es posible que no se reinicie correctamente (tal vez por eso está considerando un reinicio correcto)

Difícil
fuente
1

Si Apache está sirviendo archivos estáticos, y no está actuando como el frente de algo como el , es bastante sencillo. La mayoría de los usuarios ni siquiera lo notarán, y aquellos que lo hagan lo considerarán una falla normal. Apache no atenderá nuevas solicitudes hasta que se atiendan las anteriores, por lo que estará esperando hasta que todas terminen. Si alguien está descargando un archivo de 500 MB a 68 KB / s, puede estar esperando MUCHO TIEMPO, durante el cual no está ocurriendo ninguna otra publicación.

Si Apache está al frente de un servidor de aplicaciones, la situación puede ser muy diferente. Por experiencia, la experiencia de usuario para interactuar con ese servidor será muy mala hasta que el servidor de aplicaciones esté encendido, cargado y las cachés se calienten.

sysadmin1138
fuente
55
Además, es MUY importante hacer /etc/init.d/httpd configtestantes de continuar con cualquier tipo de reinicio de Apache en un servidor de producción.
Sree
De hecho, es bastante importante ejecutar un configtest. IIRC, creo que con versiones posteriores de Apache podría realizar una prueba de configuración implícita antes de un reinicio correcto, y si falla la prueba de configuración, no continuará con el reinicio.
stellarchariot
55
"Apache no atenderá nuevas solicitudes hasta que se atiendan las anteriores, por lo que estará esperando hasta que todas terminen. Si alguien está descargando un archivo de 500 MB a 68 KB / s, puede estar esperando MUCHO TIEMPO, durante el cual no hay otro servir está sucediendo ". Esto no es exacto. La configuración se vuelve a cargar inmediatamente y se crean nuevos procesos secundarios, aceptan conexiones y procesan solicitudes mientras la generación anterior está finalizando sus últimas solicitudes.
Covener
0

El parámetro agraciado antes mencionado le dice a httpd que comience el proceso de reinicio al indicar primero a todos sus procesos secundarios para completar sus tareas actuales. Después de que todos los procesos secundarios (los que están atendiendo solicitudes http) hayan terminado sus tareas, se cerrarán; Si algún proceso secundario no está atendiendo solicitudes, se cerrará de inmediato.

Mientras que, detenga los intentos de terminar todos los procesos secundarios inmediatamente, lo que podría dejar a los usuarios finales suspendidos. Mi preferencia es elegante, una mejor opción para su servidor de clase empresarial, porque es más amigable que terminar abruptamente los procesos secundarios que sirven a los clientes. Muchos administradores y especialmente los programadores usan stop para detener su servidor, a menudo porque no saben que existe gracia.

Enlace: https://www.godaddy.com/garage/tech/config/how-to-restart-apache-without-rebooting-your-centos-linux-server/ Enlace

Somdip Dey
fuente