¿Con qué frecuencia se deben reiniciar Apache y MySQL?

9

¿Con qué frecuencia deberían reiniciarse Apache y MySQL (en particular, tener 150K visitas / semana), y cuál sería el beneficio real de reiniciar cada cierto tiempo?

Peter Mortensen
fuente

Respuestas:

19

Si su sistema está ajustado adecuadamente y su aplicación no tiene problemas como pérdidas de memoria, solo debería reiniciarlos para aplicar parches.

rodjek
fuente
9

Apache y MySQL por sí mismos no deberían tener pérdidas de memoria. La mayoría de los servidores de bases de datos funcionan mejor cuanto más tiempo han estado en funcionamiento. Sin embargo, los módulos que se compilan en Apache como PHP a menudo tienen pérdidas de memoria.

El módulo mpm de Apache recicla automáticamente los procesos después de 10,000 solicitudes. Puede cambiarlo MaxRequestsPerChilda algo diferente, pero 10,000 es un valor predeterminado razonable.

brianegge
fuente
¿Qué significa esto: la mayoría de los servidores de bases de datos funcionan mejor cuanto más tiempo han estado en funcionamiento ? ¿Qué significa mejor ?
tshepang
5

Apache no necesita reiniciar regularmente; ni tampoco MySQL.

Apache que se ejecuta en modo prefork puede reciclar sus procesos secundarios utilizando MaxRequestsPerChild; Esto es bueno, ya que defiende contra fugas lentas de memoria, etc.

MySQL no debe reiniciarse regularmente, ya que reiniciarlo provocará una interrupción del servicio. El reinicio de MySQL debe esperar a que los motores se inicien y también borrará la memoria caché, lo que hará que el rendimiento se vea afectado hasta que se caliente. Parece que descubrimos que necesita reiniciarse de vez en cuando [1] debido a la fragmentación del espacio de direcciones, pero esto no debería suceder tanto en un sistema de 64 bits, al que siempre deberían llegar las nuevas instalaciones.

[1] por ejemplo, cada 9 meses en un servidor ocupado con> 100 consultas por segundo promedio

MarkR
fuente
3

Debe evitar reiniciar MySQL siempre que sea posible por razones de rendimiento. MySQL usa mucha memoria para almacenar en caché las páginas de datos e índices. Cuando reinicia MySQL, se liberan todas las páginas almacenadas en caché y necesita tiempo para calentar las cachés. En sitios altamente cargados, el reinicio de la base de datos podría causar problemas de rendimiento.

Su sitio no está muy cargado (150k visitas / semana solo da 1req / 4s), por lo que el reinicio de MySQL no debería causar grandes problemas.

sumar
fuente
2

Para comprender cuándo se debe reiniciar un sistema o servicio, primero debe comprender por qué. Las pérdidas de memoria son la razón más común, pero puede haber otras, como un software mal escrito (¡muy común!) Que no realiza una limpieza interna adecuada, como cerrar los identificadores de archivos cuando ya no son necesarios. Si bien no es lo mismo que una pérdida de memoria, los síntomas son los mismos. Se sabe que tanto Apache como MySQL son muy estables (a menos que esté ejecutando una versión alfa o beta) y pueden ejecutarse durante años sin problemas. Normalmente, el sistema operativo necesitará reiniciarse para aplicar parches mucho antes de que cualquiera de las aplicaciones lo requiera.

John Gardeniers
fuente