Memory Limits on Linux on x86

Mark Hahn hahn at physics.mcmaster.ca
Fri Jul 19 08:40:16 PDT 2002


> problem we have. I know that 32-bit x86 Linux has
> a memory limit of 3 Gigs (3.5 with a patch) that it

3.75 is pretty trivial.  don't let the "patch" scare you off - 
there's nothing exotic about it, it's been around for years,
consists of just a couple lines of code change, and some dist/kernels
come with it as a CONFIG_ option.

> can address. Is that 3 Gigs per user process or 3 Gigs
> total?

ia32 hardware is inherently limited to 4G to a process, always, ever, period.

the 3/3.5/3.75 comes from the fact that the kernel likes to have an
aperture within that space so that it can do IO.  (consequently,
doing 3.75 with lots of fast IO would be a mistake.)

the kernel can use up to ~64G physical ram.
even if you have just one 3G proc running, this ram may still
be worth using, since you can do IO and have the 60G of pagecache.
you can also use that ram for Shm, though of course no one proc 
can have more than a few gigs mapped at once.

note that doing lots of IO through highmem can be a performance problem
as well, since not all IO hardware can deal with 64b addresses.

if you have 21 3G procs running, using something like MPI,
there will be no problem using all 64G ;)  if you manage,
please do brag to the list...

> With the new E7500 and GC chipsets with large
> amounts of memory, I'm hoping it's 3 Gigs per user
> process.

it is.




More information about the Beowulf mailing list