Maximum Memory available to Kernel Matt_Domsch at
Wed Jan 15 22:40:00 CST 2003

> as pointed out elsewhere, 64GB is the max RAM you could put 
> in a box and have the Linux kernel configured to see it.
> However, a sensible limit seems 
> to be somewhere between 20-40 GB, because adminstration 
> tables, that keep track of what's in the shared mem grow
> with the amount of RAM. Those tables 
> have to be kept in a certain memory area, and decrease the 
> amount of shared 
> mem that can be adressed by a process contiguously. Depending on you 
> application, one would have to balance those two against each other. 
> However, this is not really important below ~ 32 GB of RAM.

Close.  Dell doesn't officially support >16GB addressable RAM.  (You can do
32GB on systems that support "memory mirroring" at a hardware level for
redunancy of course, the OS only sees 16GB).  At 16GB, the struct page list
in the kernel is only ~340MB, which generally leaves sufficient "low memory"
(memory addresses 0 - ~850MB which the kernel can directly map) for the
kernel to operate.  At 32GB, the struct page list becomes nearly 680MB,
leaving relatively little memory available for all the other kernel needs.
You can play games in between, but it gets messy in a hurry, and a given
application isn't guaranteed to work.  For this reason, both Dell and Red
Hat officially claim support up to 16GB.

Red Hat engineers and others have looked into increasing this limit, but
it's pretty difficult, would have significant performance and
kernel-internal code change impacts, and is generally viewed by the kernel
community as "uninteresting" - if you *really* need that much RAM, go to a
64-bit CPU like Itanium which doesn't have such limitations.  That's a
difficult sell when most (all?) of our servers sold today are x86, but it's
sure simpler from a developer perspective. :-)


Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions
Linux on Dell mailing lists @

More information about the Linux-PowerEdge mailing list