1

I recently got tasked with a project to move an Java application hosted with Tomcat that we wrote 3-4 years ago and that has been running in a clients data center to AWS. Right now we're in the middle of load testing and have about 20% of all traffic going to the AWS, around 800 requests per minute with the majority of them being heartbeat requests, what I would consider a low amount of traffic. With that amount of traffic we're seeing average CPU utilization across 3 T2.Larges is 30%.

My question is would you consider this normal CPU utilization? Our response times are great 150-200 ms average but I would sacrifice that a bit to bring our CPU utilization down.

I'm using a NIO connector and the only configuration I have on it aside from SSL related things is I have max threads set to 150.

Tomcat Startup Information

Server version:        Apache Tomcat/8.5.30
Server built:          Apr 3 2018 20:04:09 UTC
Server number:         8.5.30.0
OS Name:               Linux
OS Version:            3.10.0-862.el7.x86_64
Architecture:          amd64
Java Home:             /usr/java/jdk1.8.0_172-amd64/jre
JVM Version:           1.8.0_172-b11
JVM Vendor:            Oracle Corporation
CATALINA_BASE:         /opt/tomcat
CATALINA_HOME:         /opt/tomcat
Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Command line argument: -javaagent:/opt/tomcat/newrelic/newrelic.jar
Command line argument: -Dnewrelic.environment=prod
Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
Command line argument: -Xms2048M
Command line argument: -Xmx2048M
Command line argument: -XX:+UseParallelGC
Command line argument: -Xms4096M
Command line argument: -Xmx4096M
Command line argument: -Djava.net.preferIPv4Stack=true
Command line argument: -Dspring.profiles.active=prod
Command line argument: -Dignore.endorsed.dirs=
Command line argument: -Dcatalina.base=/opt/tomcat
Command line argument: -Dcatalina.home=/opt/tomcat
Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp
luxiconn
  • 41
  • 1
  • I might start by getting your memory parameters correct - are you using 2G or 4G? Also, remember that any "T2" series machines do not have dedicated CPU - you have credits and can use them up over time. Once that happens there is less CPU available, possibly affecting the overall usage. – stdunbar May 16 '18 at 17:16
  • Suggest you compare the load / resource of the t2.large to your on premise resources, and edit your post so we can see it. Check your t2 credits in CloudWatch, it could be your servers have exhausted your CPU credits. I'd also try another instance type just to see what happens over a 24 hour period, to see if it's t2 related. – Tim May 16 '18 at 18:59

0 Answers0