[clug] Linux max memory per process

David Gibson david at gibson.dropbear.id.au
Thu Nov 17 05:27:17 GMT 2005

On Thu, Nov 17, 2005 at 01:52:06PM +0900, Pearl Louis wrote:
> Hi David
> So, basically,
> 32-bit system - the max memory you can allocate per process is 3GB.

Not necessarily, that's just an example.  The limit will generally be
somewhere between 2GB and 4GB for a 32 bit kernel.  For a 32 bit
process on a 64 bit kernel (a common case on ppc64 or x86_64) the
limit will usually be (4GB - one page).

> 64-bit system - max is some large number >>1TB.

Generally, yes.

> (assuming the administrator has not set any additional limits) and you
> can change this using the HIGHMEM settings if you have root ?

HIGHMEM is a kernel compile time parameter, not something you can
change at runtime.

> It is not dependent on kernel version (2.4 vs 2.6) and these figures
> include both RAM and virtual memory?

In theory the exact limits could change with kernel version.  I'm not
aware of any change between 2.4 and 2.6 in this regard, but then, I'm
not familiar with all archs.

That's a limit on virtual memory aka address space, the kernel could
map that to RAM, or to swap space / disk files at various points in
the process's life depending on the types of mapping, available memory
and so forth.
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!

More information about the linux mailing list