Rebotar Apache Cuando se Queda sin Memoria
Wordpress 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:







Muy interesante y útil, creo que lo pondré en uso por si acaso
alguna vez me ha pasado
Deja tu comentario
Additional comments powered by BackType