Ubuntu 上 Tomcat 的优化配置指南
一 基线环境与快速检查
二 Connector 与线程模型优化
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="200" minSpareThreads="10" maxQueueSize="100" prestartminSpareThreads="true"/>
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000" redirectPort="8443"
maxThreads="200" minSpareThreads="10" acceptCount="100"
URIEncoding="UTF-8" enableLookups="false"
compression="on"
compressableMimeType="text/html,text/xml,text/plain,application/json"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
三 JVM 与垃圾回收优化
export CATALINA_OPTS="\
-server \
-Xms2g -Xmx2g \
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc.log \
-Djava.security.egd=file:/dev/./urandom"
四 操作系统与网络栈优化
ulimit -n 65535* soft nofile 65535
* hard nofile 65535
sudo sysctl -w net.core.somaxconn=4096
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
sudo sysctl -w net.ipv4.tcp_fin_timeout=60
sudo sysctl -w net.ipv4.tcp_keepalive_time=1200
sudo sysctl -w net.core.rmem_max=12582912
sudo sysctl -w net.core.wmem_max=12582912
上述调整有助于提升连接队列、缩短 TIME_WAIT 回收、增强长连接与带宽利用。五 应用与运维实践