Ubuntu下Tomcat配置优化清单
一 基线与环境准备
ln -s /opt/apache-tomcat-10.1.x /opt/tomcat/etc/profile 或 setenv.sh 中设置 CATALINA_HOME 与 PATH二 Connector与线程模型优化
maxThreads:每核 50–100 为起点;例如 4 核可先试 200–400,再结合压测与CPU/RT调优。minSpareThreads:维持少量热线程,如 10–25。acceptCount:连接队列长度,建议 100–1000,队列过长会增大RT与超时风险。connectionTimeout(如 20000 ms),静态资源交由 Nginx/Apache 或 CDN。<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="400"
minSpareThreads="25"
acceptCount="200"
keepAliveTimeout="15000"
maxKeepAliveRequests="100"
URIEncoding="UTF-8"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json" />
三 JVM与GC调优
-Xms 与 -Xmx 设为相同,避免运行期扩缩堆带来的抖动;元空间按应用类数量设置上限。-XX:+UseG1GC)# setenv.sh
export JAVA_OPTS="\
-server \
-Xms4g -Xmx4g \
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc.log \
-Djava.awt.headless=true -Dfile.encoding=UTF-8"
-XX:PermSize/-XX:MaxPermSize),JDK 8+ 使用 Metaspace(-XX:MetaspaceSize/-XX:MaxMetaspaceSize)。四 操作系统与网络栈优化
ulimit -n 65535/etc/security/limits.conf 增加* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_max = 12582912
net.core.wmem_max = 12582912
net.core.rmem_default = 6291456
net.core.wmem_default = 6291456
sudo sysctl -p。在高并发短连接场景,可结合业务压测逐步调大队列与缓冲区。五 监控验证与常见瓶颈
logging.properties 级别,必要时关闭 AccessLogValve;使用 journalctl 或 logrotate 控制 catalina.out 体积。maxThreads 与 acceptCount,同时在前端用 Nginx 做静态资源与限流,避免后端过载。securerandom.source 至 /dev/./urandom 以加速初始化。