Ubuntu como detectar se o OOM killer foi executado

4

Usamos o Nagios para monitorar nossos servidores. Agora, o linux usa toda a RAM que lhes damos, então não há como detectar se estamos prestes a ficar sem memória. Algumas vezes tivemos algumas falhas no servidor devido ao uso excessivo de memória.

Existe alguma maneira de detectar se o ubuntu (linux) inicia o killer da OOM? Eu sei que está escrito nos arquivos de log, mas existe alguma maneira de detectar quando é lançado?

/ RJ

    
por Ronnie Jespersen 08.08.2012 / 14:44

4 respostas

1

Você não pode ver quando o OOM passa, a única maneira é verificar os logs e esperar que ele esteja lá (às vezes ele não é gravado).

Existem ferramentas para verificar o uso de memória com o Nagios, eu pessoalmente uso check_mem. pl

    
por 08.08.2012 / 14:51
2

Talvez por logtail .

oom-killer deixa rastro de execução no syslog e no dmesg. Você pode colocar um cron ou um script para invocar através de alguma ferramenta de monitoramento que "logtails" syslog e avisa se existem linhas como a abaixo entre as execuções

Feb 24 13:35:29 hostname kernel: [22472693.216224] foobar:23 invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0

O dmesg não está "logtailable", mas dmesg -c limpa o buffer do dmesg após a impressão, assim o script pode simplesmente chamar dmegs -c | grep <string> | wc -l Um valor de 1 ou maior significa que oom-killer foi invocado desde a execução / inicialização. Mas isso destruirá suas informações armazenadas no dmesg.

    
por 02.03.2017 / 11:59
0

Obviamente, ele é iniciado quando você não tem memória virtual livre suficiente e um aplicativo solicita uma região de memória do kernel. Então, o que você realmente deve monitorar é o tamanho da sua memória livre. E a média de carga é um assunto para monitorar também, porque sempre fica alta quando não há memória livre suficiente.

    
por 08.08.2012 / 14:49
0

Crie /etc/rsyslog.d/30-oom-killer.conf como abaixo:

if ($msg contains [
    "oom",
    "kill"
]) then {
    /var/log/oom-killer.log
    stop
}

Adicione /var/log/oom-killer.log ao /etc/logrotate.d/rsyslog .

    
por 29.03.2018 / 16:51