Gebruik 50% van het beschikbare RAM-geheugen om te testen:
U kunt de innodb_buffer_pool_size zeer laag verkleinen om te zien of dit helpt:
#/etc/my.cnf
innodb_buffer_pool_size = 1M
Een vuistregel is om innodb_buffer_pool_size in te stellen op 50% van het beschikbare RAM-geheugen voor het testen van weinig geheugen. Dit betekent dat je de server start en alles behalve MySQL InnoDB. Kijk hoeveel RAM je hebt. Gebruik dan 50% daarvan voor InnoDB.
Om veel instellingen met weinig geheugen tegelijk te proberen:
Een meer waarschijnlijke boosdoener is wat er verder op die server staat, zoals een webserver.
Apache?
Gebruik je Apache en/of een andere webserver? Als dit het geval is, probeer dan het RAM-gebruik te verminderen. Overweeg bijvoorbeeld in Apache conf lage RAM-instellingen zoals deze:
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 5
En sluit de verzoeken als volgt af:
MaxRequestsPerChild 300
Start Apache vervolgens opnieuw.
mod_wsgi:
Als je Apache gebruikt met mod_python, schakel dan over naar Apache met mod_wsgi.
Pympler:
Als het nog steeds gebeurt, groeit je Django mogelijk gestaag. Probeer Django-geheugenprofilering met Pympler:
SAR:
Uw rapport van eenmaal per dag storingen en vervolgens eenmaal per week storingen, kan wijzen op een soort cron-taak die dagelijks of wekelijks wordt uitgevoerd. Misschien is er bijvoorbeeld een batchproces dat veel RAM in beslag neemt, of een databasedump, enz.
Om RAM-gebruik bij te houden en te zoeken naar RAM-pieken in het uur voordat MySQL sterft, kijk eens naar SAR, wat een geweldig hulpmiddel is:http://www.thegeekstuff.com/2011/03/sar-examples/