Why does the Java VM process eat up more RAM then specified in -Xmx parameter?
Posted
by evilpenguin
on Server Fault
See other posts from Server Fault
or by evilpenguin
Published on 2010-05-12T09:57:04Z
Indexed on
2010/05/12
10:04 UTC
Read the original article
Hit count: 371
I have multiple servers running CentOS 5.4 and only one application running on Java VM. I've configured the Java VM with the following arguments:
java -Xmx4500M -server -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:NewSize=1024m -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote=true
The machines I'm running the VM on has 6 GB RAM and no other applications running. After a while, the java process starts to hit the swap space really hard, I get this info out of the top
command:
7658 root 25 0 11.7g 3.9g 4796 S 39.4 67.3 543:54.17 java
On the other hand, if I connect via JConsole, it reports the Java VM has 2.6 GB used, 4.6 GB commited and 4.6 Gb max.
java -version returns:
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)
Why is the Java VM expanding so much past it's allocated heap size? And where does that memory go, if it's not reported in JConsole?
© Server Fault or respective owner