Servidor Ubuntu 14.04 - Sem memória (OOM killer) - o que está causando meu problema de memória / vazamento?

2

Eu tento encontrar a causa porque meu servidor fica sem memória a cada poucas semanas e chama o killer da OOM. Parece ser que o uso da memória é estável por cerca de duas semanas, e depois aumenta gradualmente por duas semanas. Então há uma grande subida resultando em uma chamada OOM.

Ousodememóriaantesdacaminhada:

WedJun308:50:01EDT2015COMMAND%MEMtor14.7mysqld11.8spamdchild5.5apache24.6spamdchild4.5apache24.4apache24.4apache24.2apache24.2apache23.3MemorySpaceDetailsTotalMemoryspace:1250MBUsedMemorySpace:964MBFreeMemory:285MBSwapmemoryDetailsTotalSwapspace:255MBUsedSwapSpace:81MBFreeSwap:174MB

AquiestáousodememórialogoantesdaOOMserchamada.

WedJun309:10:02EDT2015COMMAND%MEMtor13.4mysqld11.2spamdchild5.2apache23.8apache23.6apache23.3apache22.6apache22.5apache22.5spamdchild2.4MemorySpaceDetailsTotalMemoryspace:1250MBUsedMemorySpace:873MBFreeMemory:376MBSwapmemoryDetailsTotalSwapspace:255MBUsedSwapSpace:178MBFreeSwap:77MB

SistemachamandoaOOM:

1Time(s):/usr/sbin/spamdinvokedoom-killer:gfp_mask=0x201da,order=0,oom_score_adj=0

OprocessoTORémorto.

Apósumareinicialização,ousodememóriacaieosistemaestáfuncionandobemporalgumassemanas.

OMMAND%MEMtor12.0mysqld7.8/usr/sbin/spamd6.2spamdchild6.1spamdchild6.1apache24.4apache22.9apache22.9apache22.5apache22.0MemorySpaceDetailsTotalMemoryspace:1250MBUsedMemorySpace:659MBFreeMemory:590MBSwapmemoryDetailsTotalSwapspace:255MBUsedSwapSpace:0MBFreeSwap:255MB

Saídadokernel: link

De onde vem o salto de memória? Por que o uso de memória aumenta gradualmente ao longo de um período de 2 semanas? Vazamento de memória?

    
por MikeSkril 05.06.2015 / 16:44

1 resposta

1

Difícil dizer o que está causando o salto ou o aumento gradual com as informações fornecidas.

Os instantâneos fornecidos sugerem que os principais usuários de memória estão realmente se comportando bem - o espaço ocupado pela memória é menor durante a trituração da memória, logo antes do ataque da OOM. O que sugere que alguns outros processos realmente contribuem para a crise (talvez relacionado a alguma atividade do usuário, talvez algumas coisas do cron, talvez alguma condição transitória de repente durando muito mais do que o habitual?).

Infelizmente, o assassino da OOM não é inteligente o suficiente e mata cegamente o processo de usuário de memória superior - IMHO uma decisão pouco inspirada em servidores com funções dedicadas.

Um monitoramento muito mais detalhado seria necessário para descobrir os processos que causam a falta de memória. Eu começaria com execuções periódicas de top despejando informações sobre all os processos em um arquivo que pode ser examinado posteriormente. Por que todos os processos? Porque um pico súbito ou um aumento gradual no número de processos (mesmo com uma pequena pegada de memória cada um) também pode explicar potencialmente alterações de uso de memória como as que você relatou.

    
por 05.06.2015 / 17:22