Why is Tomcat/JVM using 4.5Gb virtual memory on a server with only 4Gb RAM and no swap?

March 28, 2019 245 views
Java Server Optimization Ubuntu 16.04

I've changed /etc/default/tomcat7 to have Xms and Xmx of 2048m on a 4Gb server:

JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xms2048m -Xmx2048m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/share/tomcat7"

However I see tomcat7 with a VIRT of 4575652 and a RES of 1.150g in "top".

  • Why is Tomcat/JVM using 4.5Gb virtual memory on a server with only 4Gb?
  • Why does Tomcat/JVM not "page in" the Xms of 2048m?

And I thought I understood virtual memory and the JVM :-(

Any help would be greatly appreciated. Thanks.

Be the first one to answer this question.