CentOS 上提升 Tomcat 性能的系统化做法
一 操作系统与网络层优化
二 Tomcat 容器与连接器优化
<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="50"
maxQueueSize="100"/>
<Connector executor="tomcatThreadPool"
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
maxConnections="10000"
compression="on"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json"
keepAliveTimeout="15000"
maxKeepAliveRequests="100"/>
<Connector port="8443"
protocol="org.apache.coyote.http2.Http2Protocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/keystore.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
三 JVM 与垃圾回收调优
export CATALINA_OPTS="-server \
-Xms4g -Xmx4g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:InitiatingHeapOccupancyPercent=45 \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc.log"
四 应用与数据库层优化
五 压测验证与上线步骤