Recentemente, fui encarregado de um projeto para mover um aplicativo Java hospedado no Tomcat que escrevemos há 3-4 anos e que está sendo executado em um data center de clientes para a AWS. No momento, estamos no meio do teste de carga e temos cerca de 20% de todo o tráfego indo para a AWS, cerca de 800 solicitações por minuto, com a maioria delas sendo solicitações de heartbeat, o que eu consideraria uma baixa quantidade de tráfego. Com essa quantidade de tráfego, estamos vendo a utilização média da CPU em 3 T2. As linhas são 30%.
Minha pergunta é se você considera essa utilização normal da CPU? Nossos tempos de resposta são ótimos 150-200 ms médios, mas eu sacrificaria um pouco para reduzir nossa utilização de CPU.
Estou usando um conector NIO e a única configuração que tenho além de coisas relacionadas a SSL é que eu tenho um máximo de threads configurado para 150.
Informações de inicialização do Tomcat
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