Como resolver esse problema, então?
No meu caso, resolvi adicionando uma partição de SWAP à minha instância. Verifiquei que instâncias no AWS em princípio não possuem uma partição de SWAP, e, em casos onde a instância possui pouca memória, isso pode ser primordial para o bom funcionamento do sistema.
O processo é simples e vou exemplificar como pode ser executado em duas etapas, a primeira no console do AWS e a segunda em um shell para a instância:
1. Abra o Console AWS (http://console.aws.amazon.com) e vá para: EC2 → Volumes
2. Clique em: "Create Volume". Selecione o tipo (Standard), o tamanho e a zona;
3. Clique com o botão direito em cima do volume e selecione "Attach Volume", para associá-lo à instância que está rodando;
4. Abra um shell para a sua instância:
$ ssh -i <arq.pem> <usuario>@<IP_da_instancia>
Obs.: Vamos exemplificar utilizando /dev/xvdf, para o novo volume anexado.
5. Execute o fdisk:
$ sudo fdisk /dev/xvdf
E utilize a sequência:
1. n Cria uma nova partição;
2. p Primária;
3. Enter Seleciona o número 1;
4. Enter Seleciona o primeiro setor;
5. Enter Seleciona o último setor;
6. t Para selecionar o tipo de partição;
7. 82 Linux swap;
8. w Salva e sai.
Depois ative a SWAP: $ sudo mkswap /dev/xvdf1
$ sudo swapon /dev/xvdf1
Pronto, criamos um novo volume, anexamos à instância rodando, particionamos como SWAP e o ativamos.
Mas existem outras maneiras de resolver o problema, como:
1. Ajustando adequadamente as configurações e buffers do MySQL. Ex.: key_buffer_size, innodb_buffer_pool;
2. Ajustando o OOM score do seu sistema, por exemplo:
# cat /proc/$(pidof mysqld)/oom_score_adj
# echo '-20' > /proc/$(pidof mysqld)/oom_score_adj
# cat /proc/$(pidof mysqld)/oom_score
O range do OOM Score vai de -1000 a 1000 (ou -17 até 15 em sistemas mais antigos). Lembrando que, utilizando o valor mínimo, não desabilita o OOM Score, somente reduz suas chances de ser convidado a se retirar da memória.
mais informaçoes...
http://www.dbasquare.com/2012/05/31/mysql-oom-killer-and-everything-related/
Vitor Yudi Hansen