Crash di MySQL per problemi di memoria

Recentemente ho spostato il mio blog su un VPS di Digital Ocean che ha un ottimo rapporto di qualità/prezzo.

Purtroppo capitava saltuariamente che il servizio MySQL andasse in crash rendendo quindi indisponibile il blog: dal browser appariva la scritta:

"Error Establishing a Database Connection"

Dopo varie ricerche ho capito che il problema del crash di MYSQL era dovuto alla poca RAM a mia disposizione ed al fatto che in fase di configurazione del VPS non ho configurato lo SWAP.

Quindi ho aggiunto lo SWAP seguendo up apposito tutorial presente su Digital Ocean.

A questo punto i crash di MySQL non si sono più verificati. In ogni caso, per maggiore sicurezza, ho schedulato un script per monitorare eventuali crash di MySQL.

Ho trovato lo script su un post di uno sviluppatore americano, Nic Raboy, che ovviamente ringrazio.

Lo script non fa altro che verificare se esiste almeno un processo relativo a mysqld, se non ne trova esegue le seguenti semplici azioni:

  • invia una mail di avviso
  • riavvia il servizio MySQL

Attivare il tutto è semplicissimo. Si crea lo script con il seguente comando:

nano mysql_monitor.sh

si aggiunge il seguente codice:

#!/bin/bash
if (( $(ps -ef | grep -v grep | grep mysqld | wc -l) <= 0 ))
then
    echo "MySQL non sta funzionando e verra' riavviato!" | mail -s "MySQL crash" tua_mail@tuodominio.com
    service mysql restart
fi

a questo punto bisogna rendere eseguibile lo script

chmod 744 mysql_monitor.sh

Infine bisogna schedularlo in crontab tramite il comando

crontab -e

aggiungendo la seguente riga:

*/5    *    *    *    *    /root/mysql_monitor.sh

in questo caso lo script verrà eseguito ogni 5 minuti.

Ovviamente questo script può essere utilizzato anche per monitorare qualunque altro processo.

(Letto 337 volte di cui 1 negli ultimi 30gg)
twitterlinkedinmailby feather

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *