sql >> Databáze >  >> RDS >> Mysql

Služba mysqld se zastaví jednou denně na serveru ec2

K testování použijte 50 % dostupné paměti RAM:

Můžete snížit hodnotu innodb_buffer_pool_size na velmi nízkou hodnotu, abyste zjistili, zda to pomůže:

#/etc/my.cnf 
innodb_buffer_pool_size = 1M

Základním pravidlem je nastavit innodb_buffer_pool_size na 50 % dostupné paměti RAM pro testování nedostatku paměti. To znamená, že spustíte server a vše kromě MySQL InnoDB. Podívejte se, kolik máte RAM. Pak použijte 50 % z toho pro InnoDB.

Chcete-li vyzkoušet mnoho nastavení pro nedostatek paměti najednou:

Pravděpodobnějším viníkem je cokoli jiného na tomto serveru, například webový server.

Apache?

Používáte Apache a/nebo jiný webový server? Pokud ano, zkuste snížit jeho využití RAM. Například v Apache conf zvažte nastavení nízké paměti RAM, jako je tato:

StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 5

A omezte požadavky takto:

MaxRequestsPerChild 300

Poté restartujte Apache.

mod_wsgi:

Pokud používáte Apache s mod_python, přepněte na Apache pomocí mod_wsgi.

Pympler:

Pokud se to stále děje, je možné, že váš Django neustále roste. Vyzkoušejte profilování paměti Django pomocí Pympler:

SAR:

Vaše zpráva o selháních jednou za den a poté selháních jednou za týden by mohla ukazovat na nějaký druh úlohy cron běžící denně nebo týdně. Například možná existuje dávkový proces, který zabírá hodně paměti RAM nebo výpis z databáze atd.

Chcete-li sledovat využití paměti RAM a hledat špičky paměti RAM za hodinu před zánikem MySQL, podívejte se na SAR, což je skvělý nástroj:http://www.thegeekstuff.com/2011/03/sar-examples/



  1. Import excelových dat do databáze mysql

  2. Chyba souboru MySQL/zápis (Errcode 28)

  3. Formát data v MySQL SELECT jako ISO 8601

  4. Mohu kombinovat MySQL API v PHP?