优化 Tomcat 性能可以从配置调优、JVM 调优、架构优化、代码与资源优化几个方面入手。下面给你一个比较系统、可落地的优化清单。
conf/server.xml 中调整 Connector 参数:
<Connector
port="8080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="500"
minSpareThreads="50"
acceptCount="1000"
maxConnections="10000"
connectionTimeout="20000"
disableUploadTimeout="true"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/css,text/javascript,application/json"
/>
关键参数说明:
maxThreads:最大工作线程数(根据 CPU 核数和业务调整)acceptCount:等待队列长度enableLookups=false:关闭 DNS 反向解析,提升性能compression=on:开启响应压缩<!-- <Connector port="8009" protocol="AJP/1.3" /> -->
<session-config>
<session-timeout>0</session-timeout>
</session-config>
bin/catalina.sh / setenv.sh:
JAVA_OPTS="-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
-XX:+UseParallelGC
或
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
可选:
-XX:+UseZGC (高并发、低延迟)
-Xloggc:/logs/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
典型架构:
Nginx → Tomcat
Nginx 处理:
<Context>
<Resources cachingAllowed="true" cacheMaxSize="102400" />
</Context>
❌ 盲目调大 maxThreads
❌ Tomcat 处理静态资源
❌ Session 无限增长
❌ 忽略 GC 停顿
JAVA_OPTS="-Xms2g -Xmx2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
maxThreads=400
acceptCount=500
enableLookups=false
compression=on
如果你愿意,可以告诉我:
我可以给你一份针对你场景的定制优化方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。