Brug 50 % af tilgængelig RAM til at teste:
Du kan reducere innodb_buffer_pool_size meget lavt for at se om det hjælper:
#/etc/my.cnf
innodb_buffer_pool_size = 1M
En tommelfingerregel er at indstille innodb_buffer_pool_size til 50 % af tilgængelig RAM til din test med lav hukommelse. Det betyder, at du starter serveren og alt undtagen MySQL InnoDB. Se hvor meget RAM du har. Brug derefter 50 % af det til InnoDB.
Sådan prøver du mange indstillinger med lav hukommelse på én gang:
En mere sandsynlig synder er, hvad der ellers er på den server, såsom en webserver.
Apache?
Bruger du Apache og/eller en anden webserver? Hvis det er tilfældet, så prøv at reducere RAM-forbruget. For eksempel i Apache conf, overveje lave RAM-indstillinger som disse:
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 5
Og sæt begrænsningerne på anmodningerne som dette:
MaxRequestsPerChild 300
Genstart derefter Apache.
mod_wsgi:
Hvis du bruger Apache med mod_python, skal du skifte til Apache med mod_wsgi.
Pympler:
Hvis det stadig sker, vokser din Django muligvis støt. Prøv Django-hukommelsesprofilering med Pympler:
SAR:
Din rapport om fejl én gang om dagen, derefter én gang om ugen, kan pege på en slags cron-job, der kører dagligt eller ugentligt. For eksempel er der måske en batch-proces, der fylder meget RAM, eller en database-dump osv.
For at spore RAM-brug og se efter RAM-spidser i timen før MySQL dør, tag et kig på SAR, som er et fantastisk værktøj:http://www.thegeekstuff.com/2011/03/sar-examples/