在 Debian 上优化 Tomcat(Apache Tomcat) 性能,通常从 JVM 参数、Connector 配置、线程池、系统资源、应用层 等多个层面入手。下面给你一套实战型优化清单,适用于 Debian 10/11/12,Tomcat 8.5 / 9 / 10 均适用。
编辑 Tomcat 的启动配置:
sudo nano /etc/default/tomcat9
(tomcat8 / tomcat10 类似)
示例(生产环境 4C8G 服务器):
JAVA_OPTS="-Xms2g -Xmx2g \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:+ParallelRefProcEnabled \
-XX:+DisableExplicitGC \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/var/log/tomcat9/heapdump.hprof"
✅ 建议:
-Xms = -Xmx(避免动态扩容)查看 JVM 参数是否生效:
ps -ef | grep tomcat
server.xmlsudo nano /etc/tomcat9/server.xml
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="400"
minSpareThreads="50"
maxConnections="8192"
acceptCount="200"
connectionTimeout="20000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/css,application/javascript"
URIEncoding="UTF-8" />
✅ 推荐:
Nio2Protocol(异步非阻塞)maxThreads ≈ 并发请求数acceptCount 防止拒绝连接<Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="500"
minSpareThreads="50"
maxQueueSize="100" />
Connector 引用:
<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol" />
<!-- 注释掉 -->
<!-- <Connector port="8009" protocol="AJP/1.3" /> -->
✅ 安全 + 性能提升
sudo nano /etc/security/limits.conf
tomcat soft nofile 65535
tomcat hard nofile 65535
立即生效:
ulimit -n 65535
sudo nano /etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
应用:
sudo sysctl -p
sudo rm -rf /var/lib/tomcat9/webapps/ROOT
sudo rm -rf /var/lib/tomcat9/webapps/docs
sudo rm -rf /var/lib/tomcat9/webapps/examples
<Host name="localhost" appBase="webapps"
unpackWARs="true"
autoDeploy="false">
upstream tomcat {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://tomcat;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
✅ 好处:
jps -l
jstat -gc PID
top
htop
ss -antp | grep java
| 项目 | 推荐 |
|---|---|
| JVM | G1 GC |
| Xms/Xmx | 相等 |
| Connector | NIO2 |
| maxThreads | 300–800 |
| 压缩 | GZIP |
| 反向代理 | Nginx |
| 文件句柄 | 65535 |
如果你愿意,可以告诉我:
我可以给你 一套针对你环境的专属 Tomcat 优化配置。