Ubuntu 上 Tomcat 配置优化清单
一 基线与环境准备
二 Tomcat 连接器与线程池优化
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="200"
minSpareThreads="10"
acceptCount="100"
compression="on"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"
enableLookups="false"
URIEncoding="UTF-8"/>
如需与 Nginx/Apache 联动,可按需启用 AJP/1.3 连接器。三 JVM 与内存调优
export JAVA_OPTS="\
-server \
-Xms2g -Xmx2g \
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc.log"
四 操作系统与网络优化
* soft nofile 65535
* hard nofile 65535
使服务会话生效(重启或重新登录),并在 systemd 服务中设置 LimitNOFILE=65535。net.core.somaxconn=4096
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=60
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_syn_retries=1
net.core.rmem_max=12582912
net.core.wmem_max=12582912
net.ipv4.tcp_keepalive_time=1200
执行 sysctl -p 使配置持久化。五 监控验证与上线流程
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
使用 JConsole/VisualVM 连接 9090 端口观察线程、堆、类加载与 MBean。