JVMST018: Cannot allocate memory

Technote (FAQ)
Problem
JVMST018 error message occurs when running a memory intensive Java™ application in a 32-bit Java Virtual Machine (JVM™).
Cause
Maximum addressable memory has been allocated for JVM.
Solution
If almost 2 GB is used for maximum heap size for a 32-bit JVM, you might experience JVMST018 during JVM initialization:


# ./java -version -Xms128M -Xmx2048M
[ **Out of memory, aborting** ]
[ ]
[ *** panic: JVMST018: Cannot allocate memory for
initializeMarkAndAllocBits(allocbits1) ]


JVMST018 error message indicates not enough virtual storage is available to allocate the allocbits vector. As a result, the call to sysMapMem() fails. This happens only during initialization of memory.

Because of the 2 GB total address space allocated for processing that must include the text, data, bss, heap, shared memory and stack, an attempted allocation is just too much. The program's code (text), shared libraries for program execution, initialized and uninitialized data, the heap (malloc) and stack all have to fit into 2 GB.

Lowering maximum heap size can resolve this problem.












Document Information

Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, Java SDK
Operating system(s): AIX, Linux, Windows
Software version: 3.5, 4.0, 5.0, 5.1, 6.0
Reference #: 1173564
IBM Group: Software Group
Modified date: 2004-07-30