can a 32 bit process use more than 2GB?

Nigel Wade nmw at ion.le.ac.uk
Wed Mar 17 10:40:30 UTC 2010


ESGLinux wrote:
> Hi,
> 
> I´m reading a post about the memory use for a java application:
> http://web.archive.org/web/20080313075240/http://goobsoft.homeip.net/Wiki.jsp?page=JavaDebianTuning
> 
> and there is a thing that surprise me:
> Read this  and to the point where you understand that a 32-process on Linux
> only has 2GB of addressible space. In fact, back in 1999, Linus decreed that
> 32-bit Linux would never, ever support more than 2GB of memory. "This is not
> negotiable."
> 
> So I have a machine running RHEL x64 but  I have a process that run over
> only 32 bit (the JVM), Reading this I think my process only can use 2Gb of
> memory.
> 
> is it true? is it  oficial documented anywhere?
> 
> Thanks in advance,
> 
> ESG


No, the 32bit address space limit is 4GB, not 2GB.

$ java -Xmx3500m -version
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) Server VM (build 14.1-b02, mixed mode)

$ java -Xmx4500m -version
Invalid maximum heap size: -Xmx4500m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.

If you want more address space than this use a 64bit JVM.
Using a 64bit JVM then:

$ java -Xmx4500m -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

-- 
Nigel Wade, System Administrator, Space Plasma Physics Group,
            University of Leicester, Leicester, LE1 7RH, UK
E-mail :    nmw at ion.le.ac.uk
Phone :     +44 (0)116 2523548, Fax : +44 (0)116 2523555




More information about the redhat-list mailing list