Falha na alocação de páginas - Estou ficando sem memória?

22

Ultimamente, tenho notado entradas como esta no kern.log de um dos meus servidores:

Feb 16 00:24:05 aramis kernel: swapper: page allocation failure. order:0, mode:0x20

Eu gostaria de saber:

  1. O que exatamente significa essa mensagem?
  2. Meu servidor está ficando sem memória?

O uso do swap é bastante baixo (menos de 10%), e até agora eu não notei nenhum processo sendo morto por falta de memória.

Informações adicionais:

  • O servidor é uma instância Xen (DomU) com o Debian 6.0
  • Possui 512 MB de RAM e uma partição swap de 512 MB
  • carga da CPU dentro da máquina virtual mostra uma média de 0,25
por mfriedman 16.02.2011 / 13:43

3 respostas

13

O bug da Debian 666021 parece ser um relatório sobre este mesmo problema. A sugestão é:

#change value for this boot
sysctl -w vm.min_free_kbytes=65536

#change value for subsequent boots
echo "vm.min_free_kbytes=65536" >> /etc/sysctl.conf

link tem alguma discussão sobre quando alterar esta configuração pode ser útil , reproduzido aqui:

This tells the kernel to try and keep 64MB of RAM free at all times. It’s useful in two main cases:

  • Swap-less machines, where you don’t want incoming network traffic to overwhelm the kernel and force an OOM before it has time to flush any buffers.

  • x86 machines, for the same reason: the x86 architecture only allows DMA transfers below approximately 900MB of RAM. So you can end up with the bizarre situation of an OOM error with tons of RAM free.

Eu apliquei essa configuração na minha máquina x86 3.2.12-gentoo, mas ainda estou recebendo esses erros.

    
por 19.06.2012 / 01:54
1

Também pode valer a pena verificar vm.zone_reclaim_mode : veja link e link

    
por 21.07.2012 / 19:50
0

Acabei de passar por este erro em um Lenovo NAS rodando Debian 5 e kernel 2.6.39.3 64bit.

As mensagens são informativas, apesar de parecerem assustadoras, de acordo com o link

No entanto, eles estavam preenchendo minha partição raiz muito limitada (esse dispositivo tem uma partição raiz de 50 MByte ?!)

A correção para mim foi definir vm.min_free_kbytes de 65536 para 16384 .

Depois, o sistema operacional ainda tem 107 MB de memória livre e 2 GB de buffers. Isso não faz sentido, mas parou todo o registro.

    
por 18.06.2016 / 07:50