Como você pode obter mais informações sobre os processos quando o Linux é executado fora de memória?
-
02-07-2019 - |
Pergunta
Eu tive recentemente um problema com oom-killer começa a matar processos depois de algum tempo. Eu podia ver que a memória foi consumido, mas pelo tempo que eu tenho para o servidor não estava claro o que mais consumiu. Existe um bom lugar não-óbvia de obter mais informação sobre oom-killer? Por exemplo. Informações detalhadas sobre os processos no momento da ativação, informação detalhada sobre os processos de mortos e as razões para a escolha?
Eu estou procurando um lugar específico para encontrar essa informação, ferramenta específica para reunir-lo ou alguma configuração para melhorar a comunicação oom-killer. Eu não estou procurando informações genéricas sobre oom-killer. / Var / mensagens por padrão irá conter apenas um relatório detalhado sobre a memória livre / alocados, mas não os processos específicos que foi alocado.
Solução
Você pode verificar o arquivo de log de mensagens para ver qual processo foi morto e algumas informações relacionadas. Quanto aos motivos:
... o candidato ideal para a liquidação é um processo privilegiado recentemente começou, não que juntamente com ele é crianças usa muita memória, foi nice'd, e não faz nenhum raw I / O. Algo como uma compilação do kernel paralelo nohup'd (que não é uma má escolha, pois todos os resultados são salvos no disco e muito pouco trabalho é perdido quando um 'make' é terminada).
A partir aqui .
Você pode definir alguns processos ser imune ao assassino, ajustar o parâmetro swappiness no caso de você tê-lo muito baixo (que faz o gatilho feliz assassino) e verificar se há coisas listadas aqui
Outras dicas
Normalmente, você deverá receber uma mensagem em / var / log / messages, com uma quantidade bastante grande de detalhes relativos ao processo que foi morto pelo oom-killer.
Esta não é a resposta exata a sua pergunta, mas a página homem malloc(3)
no Linux tem algumas informações sobre como desactivar a memória overcommit
echo 2 > /proc/sys/vm/overcommit_memory