sandro-mechi
(usa Debian)
Enviado em 17/09/2013 - 16:43h
Amarildo e Danniel,
Seguindo a linha de raciocínio da minha última resposta, fiz o seguinte teste:
Criei um script com o nome mysql-no-oom.sh e salvei na pasta /root/scripts. Ele tem o seguinte conteúdo:
#!/bin/bash
pgrep -f "/usr/libexec/mysqld" | while read PID; do echo -1000 >
/proc/$PID/oom_score_adj; done
Configurei permissão de execução para o root e grupo e, ler / executar para outros com chmod 775.
Configurei o CRON para executar o script de 15 em 15 minutos com a seguinte linha no crontab:
0,15,30,45 * * * * root bash /root/scripts/mysql-no-oom.sh
Dando créditos, tirei a dica daqui:
http://lists.mysql.com/mysql/227187
Pelo que entendi, o script diminui a pontuação do daemon do mysql no oom_score dentro do /proc (No respectivo PID).
Quando o sistema atinge um certo limite de memória o OOM KILLER faz um select e procura o daemon que tem a maior pontuação dentro do do /proc configurado anteriormente, ao encontrar a pontuação do MYSQL, que com certeza deve ser a mais alta, ele mata o processo.
Configurei às 16h35 de hoje, vou ficar monitorando para ver se resolveu. Posto o resultado aqui para que outros também possam se beneficiar.