[nylug-talk] RedHat AS4 and wacky out-of-memory behavior

Bryan J. Smith b.j.smith at ieee.org
Thu Apr 3 17:22:47 EDT 2008


On Thu, 2008-04-03 at 06:03 -0400, Sunny Dubey wrote:
> When linux runs out of all available memory, its VM uses a feature 
> called "Out of Memory Killer" (aka OOM Killer), which kills any process 
> attempting to allocate additional memory, and (possibly) idle low 
> priority processes as well.

Again, over-commit could be the culprit here.

Or it could be the kernel memory model is usage.  On Red Hat Enterprise
Linux (RHEL) 4 with 8GiB of memory, using only 36-bit PAE x86/IA-32, I
highly recommend "hugemem."  Red Hat has backported a lot of the newer
PAE 3G/1G model code from newer 2.6.1x/2x releases to RHEL 4's 2.6.9
kernel, but it's not the same.

Even that code is heavily downplayed in RHEL 5's 2.6.18 9and various
2.6.2x backports), and a strong argument is made to go with a 52-bit PAE
x86-64/IA-32e (aka 64-bit AMD64/EM64T).  In other words, I
professionally do _not_ trust the 3G/1G model at all.  ;)

The other could be the processor in use and its "maturity."  Both Intel
and, more recently, AMD have had their share of TLB issues on their new
core designs with increased, physical addressing in the last 18 months.
More issues seem to creep up every day.

> The kernel's VM has been fixed long ago to not kill init and some
> other types of processes deemed important as well.  (Since like the
> later linux 2.4x series or so.)
> You may wish to see if they are upgraded kernels for 
> your distro

Red Hat Enterprise Linux (RHEL) 4's latest release (Update 6, RHEL 4.6,
latest errata kernel) is 67.0.7 (2.6.9-67.0.7).  I have a client running
a newer development release (68.x) because they were still installing
36-bit PAE x86/IA-32 systems with up to 32GiB of RAM and want to use the
"faster" 3G/1G model.  Just recently they finally changed the ruling to
"hugemem" only on anything with 8GiB or more of RAM (thank God).

Although Update 7 will attempt to integrate many of these 3G/1G fixes,
which are on-going even in the stock kernel (and RHEL 5), it suffers the
same attitude -- get your butt to 52-bit PAE x86-64/IA-32e.  In a
nutshell:  The upstream kernel developers really don't care about you
(if you're still 32-bit), and as of RHEL 5, Red Hat is really
deprecating their support of it as well (and RHEL 4.7 and 5.2 32-bit VM
fixes will probably be the final mainstream ones).

> or just roll your own update.

*NEVER* do this with Red Hat Enterprise Linux (RHEL) or SuSE Linux
Enterprise Server (SLES).  You'll break all sorts of things -- and
that's before we even look at breaking ABI compatibility.  ;)

People run "Enterprise" distros, with their kernels, for a reason.
That's not to knock upstream, not at all.  But the focus is completely
different.  I.e., I run into all sorts of issues when people try a
distro other than RHEL or SLES -- especially for large memory support.


-- 
Bryan J  Smith              Professional, Technical Annoyance
mailto:b.j.smith at ieee.org  http://www.linkedin.com/in/bjsmith
-------------------------------------------------------------
           Fission Power:  An Inconvenient Solution



More information about the nylug-talk mailing list