Home » Blogging, Software Libre

votarRebotar Apache Cuando se Queda sin Memoria



5 Agosto 2009 1 Comentario Autor: Eduardo Collado

php-apache-mysqlWordpress y en definitiva cualquieraplicación que utilice Apache, MySQL y PHP puede “cascar” y empezar a comer recursos dejando al servidor sin memoria, de forma que el servidor dejará de funcionar correctamente y lo peor, dejará de servir páginas web, lo cual es algo terrible, para solucionar eso basta con ejecutar un script que periódicamente revise la utilziación de memoria de la máquina y si la utilización de memoria es mayor a la definida entonces reseteará el Apache y el Mysql.

Obviamente esta solución es “matar moscas a cañonazos” y es una aberración, pero si no queremos o no sabemos tocar el código de nuestras aplicaciones puede ser una solución.

El script podría ser el siguiente:

#!/bin/bash

umbral=90 #percent
total=$(free | grep "Mem:" | awk '{print $2}')
restante=$(free | grep "Mem:" | awk '{print $4}')
actual=$(echo "scale=0;100-$restante * 100 / $total" | bc -l)

if [ $actual -gt $umbral ]
then
      /etc/init.d/apache2 stop
      /etc/init.d/mysql restart
      /etc/init.d/apache2 start

      echo "Apache y Mysql rebotado el `date +'%Y-%m-%d %H:%M:%S'`. Utilizacion de RAM ${current}%"
      >> /var/log/apache_mysql_restarter.log
fi

Y para ejecutarlo periódicamente lo único que tenemos que hacer es incluirlo en el cron de root con el comando crontab -e.

#Control Apache y Mysql, a mas de 90% de memoria se rebota
0-59/10 * * * * /scripts/control_apache.sh

Y luego no olvidéis de ir revisando el fichero

/var/log/apache_mysql_restarter.log

porque en ese fichero podremos ver cuando se ha ido reseteando los procesos de nuestro servidor.

Posts Relacionados:

  1. Desarrollo Web más allá de LAMP (Linux + Apache + M*SQL + Perl/Php/Phyton)
  2. Amazon se Queda sin Orwell
  3. Todo Suecia se queda sin Internet una hora


1 Other Comment

Un Comentario »

  • David Carrero Fdez-Baillo
    David Carrero Fdez-Baillo said:

    Muy interesante y útil, creo que lo pondré en uso por si acaso :) alguna vez me ha pasado :)

Deja tu comentario

Añade tu comentario abajo, o envía un trackback desde tu web. Además puedes suscribirte a los comentarios via RSS.

Se bueno, educado, mantente en el tema, no mandes spam.

Puedes utilizar estas etiquetas HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Este blog utiliza tu foto de Gravatar. Para configurar tu foto por favor ve a Gravatar.

Additional comments powered by BackType