Mysql
 sql >> Database >  >> RDS >> Mysql

Il servizio mysqld si interrompe una volta al giorno sul server ec2

Utilizza il 50% della RAM disponibile per testare:

Puoi ridurre innodb_buffer_pool_size molto in basso per vedere se aiuta:

#/etc/my.cnf 
innodb_buffer_pool_size = 1M

Una regola pratica è impostare innodb_buffer_pool_size sul 50% della RAM disponibile per i test di memoria insufficiente. Ciò significa che avvii il server e tutto tranne MySQL InnoDB. Guarda quanta RAM hai. Quindi usa il 50% di quello per InnoDB.

Per provare molte impostazioni di memoria insufficiente contemporaneamente:

Un colpevole più probabile è qualsiasi altra cosa su quel server, come un server web.

Apache?

Stai usando Apache e/o un altro web server? In tal caso, prova a ridurre l'utilizzo della RAM. Ad esempio in Apache conf, considera le impostazioni della RAM bassa come queste:

StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 5

E blocca le richieste in questo modo:

MaxRequestsPerChild 300

Quindi riavvia Apache.

mod_wsgi:

Se stai usando Apache con mod_python, passa ad Apache con mod_wsgi.

Pimpler:

Se sta ancora accadendo, forse il tuo Django è in costante crescita. Prova la profilazione della memoria di Django con Pympler:

SAR:

Il tuo rapporto di errori una volta al giorno, quindi errori una volta alla settimana, potrebbe indicare una sorta di lavoro cron in esecuzione quotidianamente o settimanalmente. Ad esempio, forse c'è un processo batch che occupa molta RAM, o un dump del database, ecc.

Per tenere traccia dell'utilizzo della RAM e cercare picchi di RAM nell'ora prima che MySQL muoia, dai un'occhiata a SAR, che è un ottimo strumento:http://www.thegeekstuff.com/2011/03/sar-examples/