Por que o Debian falha com o OOM?

1

Eu recentemente atualizei meu servidor do Debian squeeze i386 para o wheezy amd64, reinstalando e reconfigurando. Além disso, eu queria poder iniciar convidados virtuais, então instalei o XEN também.

Eu tenho então o problema que de vez em quando o OOM killer destruiu vários processos no meu Dom0. Eu então reiniciei e desativei vários serviços (como apache2, mysql, postgresql, ...). Agora parece que nenhum processo é mais destruído (inseguro, como não acontece regularmente, mas de maneira estocástica). MAS: Se eu colocar uma carga alta na máquina (acesso ao sistema de arquivos criptografado), o killer da OOM será ativado.

Infelizmente, o sistema não pode mais ser usado depois que o problema ocorreu. Por isso não consigo acessar via ssh para investigar. Também uma investigação física via console trava na maioria das vezes.

Eu tenho um daemon atop rodando a cada minuto para que eu possa ver a memória e trocar o cunsumption antes da falha: A RAM é 1GB (880MB) no total (staically alocado para Dom0, sem balão), onde aprox. 440 MB são cache. Alguns MB são buffers e cerca de 20MB são gratuitos. A troca é de 25GiB no total e completamente grátis.

O que eu não entendo: por que o kernel não mata parte do cache se mais RAM for necessária? É o cache, então tudo o que pode acontecer é um problema de desempenho, mas o sistema permanecerá estável. Desta forma, o sistema trava. Além disso, por que as seções de memória desnecessárias usadas por outros programas não são trocadas? Deve haver espaço suficiente para fazer o que você quiser.

Às vezes eu vi uma mensagem no console dizendo que uma tarefa (jbod / raid5 ou algo similar) estava bloqueando (?) por mais de 120 segundos. Não tenho certeza se esta é a causa ou o impacto do problema da OOM.

Agora minhas perguntas são:

  • Poderia ser uma questão XEN?
  • Poderia ser um problema de hardware? RAM ou HD?
  • O que posso fazer para evitar falhas futuras?

Editar: Eu apenas tentei reproduzir o erro. Ele caiu, mas desta vez (não exatamente agora se houve outros erros em outras situações) o programa que pendurou foi xenwatch. Portanto, nenhum programa acessando o hd.

    
por Christian Wolf 05.07.2013 / 13:11

0 respostas