OOM-Killer chamado de vez em quando

5

Eu tenho um servidor dedicado onde instalei apache2 , bem como rails-passenger . Embora eu tenha 2GBs de RAM e na maioria das vezes cerca de 1,5GB seja gratuito, existem alguns tempos aleatórios onde perco ssh e conectividade genérica porque oom-killer está eliminando processos.

Suponho que haja um vazamento de memória, mas não consigo descobrir de onde vem. oom-killer mata apache2 , mysql , passenger e tudo mais.

Ontem, eu fiz um cat syslog | grep -c oom-killer e consegui 57 ocorrências!

Parece que algo destrói seriamente a memória. Depois que eu reinicio, tudo volta ao normal. Eu suspeito que isso pode estar relacionado a passenger , mas eu ainda estou tentando descobrir isso.

Você pode pensar em outra causa, ou você tem alguma coisa a sugerir que facilitará o procedimento de identificação de vazamentos? Eu estava até pensando em escrever um script bash, para ser executado com cron para cada 5 minutos.

    
por SpyrosP 09.01.2011 / 05:37

1 resposta

1

O kernel do Linux, por padrão, compromete a memória de modo que, às vezes, um programa aloque com sucesso a memória não disponível, e o OOM iniciará e matará um processo aleatório. Desativar isso talvez permita que você identifique qual aplicativo rouba a memória. Por exemplo. se um aplicativo estiver subitamente alocando um grande pedaço de memória, ele falhará (e esperamos que retorne uma mensagem de erro). Outros aplicativos podem falhar ao alocar memória também, então você deve ficar atento a um falso positivo.

echo 2 > / proc / sys / vm / overcommit_memory

    
por 10.10.2011 / 00:45