0

Ok so this is a very odd behaviour. Setting jvm parameters -Xms6g -Xmx6g has no affect on tomcat. Tomcat doesn't allocate memory when checked with free -m or with top.

I'm using

  • Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-7c412f13

  • tomcat8

  • oracle java 1.8

Just to eliminate any doubts about parameters not getting picked by service daemon. I'm starting tomcat manually.

sudo /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat8/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xms6g -Xmx6g -Djava.endorsed.dirs=/usr/share/tomcat8/endorsed -classpath /usr/share/tomcat8/bin/bootstrap.jar:/var/lib/tomcat8/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp org.apache.catalina.startup.Bootstrap start

Could it be something wrong on OS or AMI level?

  • As a test this doesn't work with any java process. java -jar -Xms6g -Xmx6g test.jar does not allocate 6gb memory. But interestingly when a number is set higher than available memory, the startup fails indicating not enough memory. – Arslan Mehboob May 16 '18 at 11:27

1 Answers1

0

This can be fixed with adding -XX:+AlwaysPreTouch as JVM parameter.