Resolution: The Maximum theoretical heap limit for the 32-bit JVM is 4G.
Due to various additional constraints, such as available swap, kernel address space usage, memory fragmentation and VM overhead, in practice the limit will be much lower.
- On most 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G.
- On 32-bit Solaris kernels the address space is limited to 2G.
- On 64-bit operating systems running a 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems.
If your application requires a large heap space, especially if your engine is acting as a cache engine, you should use a 64-bit VM on a version of the operating system that supports 64-bit applications. You can run multiple 32-bit JVMs configured as cache agents with a 1GB max heap .