LowFree Memory

Occasional Advisor

LowFree Memory

We have an issue with a Redhat AS3 UPD8 server that is exhausting LowFree memory. Once this happens the OOM killer kicks in and wrecks havoc with arbitary processes. I can see LowFree dropping over time, but don't understand what's grabbing it and why it is not being released. I don't believe that we have a physical memory problem - there is 10Gb allocated to the VMWare installation and the application doesn't use all of that anyway. There is no swap activity. We are using the 32Bit snmp kernel. We cant upgrade the Redhat installation, and as it's on VMWare we cannot (apparently) use the HugeMem kernel.

Any ideas?
Steven E. Protter
Exalted Contributor

Re: LowFree Memory


Work with the application to reduce memory use.

Look for memory leaks.


Works for Linux and HP-UX

Steven E Protter
Owner of ISN Corporation
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Honored Contributor

Re: LowFree Memory

The 32-bit kernel can directly access only 4 GB of memory. With special PAE tricks, you can use more than 4 GB with a 32-bit kernel, but there are certain limitations:

- The total memory usage of any one process may not exceed 4 GB (in practice the limit is even lower).

- to transfer data between processes, the system must use a "bounce buffer" which must be located in the bottom 4GB area

- DMA transfers must be targetted to "bounce buffers" in the bottom 4 GB too.

- the use of PAE causes some performance degradation

In short, in 32-bit machines, there are many things that require "low" memory, so it can easily become a bottleneck.

Is the application transferring large amounts of data from/to disks? (DMA transfers)

Kevin Wright
Honored Contributor

Re: LowFree Memory

work with app team to lower memory consumption :) lol

Not sure why you can't run hugemem kernel on vmware, that is a solution, so I would try using the hugemem kernel at all costs.

Otherwise, you can add in lower_zone_protection:
echo "250" > /proc/sys/vm/lower_zone_protection

add to /etc/sysctl.conf
vm.lower_zone_protection = 250

only other resolution is running 64 bit, if you can't run the hugemem kernel.