We are using 32 bit Red Hat Linux with 10 GB Physical Memory. JVM allows us to allocate max heap size as 2GB. But we have requirement to allocated more than 2GB. Is there any way I can allocate more heap size then 2GB.
Please help us as we are struggling with Performance issue in production
32-bit applications are limited to 4GB of memory. Some of that space (usually around 1GB on Linux and 2GB on Windows) is reserved for the operating system's use (for things such as file handles). The rest of the space is used by the code (the app itself and its shared libraries or DLLs) and the app's data. The heap is only one of the many data areas used by the JVM (others include the thread stacks, perm gen and C/C++ data structures used by the JVM).
The JVM heap size is limited to the largest contiguous memory block that can be allocated. On most 32-bit Linux systems this turns out to be around 2GB. On Windows it is around 1.4GB.
If you need a larger heap, you will have to move to a 64-bit operating system and run a 64-bit JVM.