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