Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

serviço mysqld para uma vez por dia no servidor ec2

Use 50% da RAM disponível para testar:


Você pode diminuir o innodb_buffer_pool_size muito baixo para ver se ajuda:
#/etc/my.cnf 
innodb_buffer_pool_size = 1M

Uma regra geral é definir innodb_buffer_pool_size para 50% da RAM disponível para seu teste de memória baixa. Isso significa que você inicia o servidor e tudo exceto MySQL InnoDB. Veja quanta memória RAM você tem. Em seguida, use 50% disso para o InnoDB.

Para tentar várias configurações de pouca memória de uma só vez:

Um culpado mais provável é qualquer outra coisa que esteja nesse servidor, como um servidor web.

Apache?


Você está usando Apache e/ou outro servidor web? Em caso afirmativo, tente diminuir o uso de RAM. Por exemplo, no Apache conf, considere configurações de pouca RAM como estas:
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 5

E limite os pedidos assim:
MaxRequestsPerChild 300

Em seguida, reinicie o Apache.

mod_wsgi:


Se você estiver usando o Apache com mod_python, mude para o Apache com mod_wsgi.

Pympler:


Se ainda está acontecendo, possivelmente seu Django está crescendo constantemente. Experimente o perfil de memória do Django com o Pympler:

SAR:


Seu relatório de falhas de uma vez por dia, depois de falhas de uma vez por semana, pode apontar para algum tipo de cron job sendo executado diariamente ou semanalmente. Por exemplo, talvez haja um processo em lote que ocupe muita RAM, ou um despejo de banco de dados, etc.

Para rastrear o uso de RAM e procurar picos de RAM na hora antes do MySQL morrer, dê uma olhada no SAR, que é uma ótima ferramenta:http://www.thegeekstuff.com/2011/03/sar-examples/