Linux – Page allocation failure – Am I running out of memory

linuxmemorytroubleshooting

Lately, I've noticed entries like this one in the kern.log of one of my servers:

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

I'd like to know:

  1. What exactly does that message mean?
  2. Is my server running out of memory?

The swap usage is quite low (less than 10%), and so far I haven't noticed any processes being killed because of lack of memory.

Additional information:

  • The server is a Xen instance (DomU) running Debian 6.0
  • It has 512 MB of RAM and a 512 MB swap partition
  • CPU load inside the virtual machine shows an average of 0.25

Best Answer

Debian bug 666021 seems to be a report of this same issue. The suggestion there is:

#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

http://russ.garrett.co.uk/2009/01/01/linux-kernel-tuning/ has some discussion of when altering this setting may be useful, reproduced here:

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.

I applied this setting on my 3.2.12-gentoo x86 machine, but I'm still getting these errors.