Linux上Tomcat性能优化实战指南
一 基线评估与容量规划
二 Tomcat线程池与连接器优化
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="400" minSpareThreads="80"
maxQueueSize="200" prestartminSpareThreads="true"/>
<Connector executor="tomcatThreadPool"
port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443"
enableLookups="false"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript"
socket.appReadBufSize="32768" socket.appWriteBufSize="32768"
useSendfile="true"/>
以上取值与开关能显著提升并发、降低RT并减少带宽占用,需结合业务压测验证。三 JVM与垃圾回收调优
export JAVA_OPTS="\
-server \
-Xms4G -Xmx4G \
-XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=512M \
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 \
-XX:+TieredCompilation \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat/logs/heap.hprof \
-Xlog:gc*,gc+heap=debug:file=/opt/tomcat/logs/gc.log:time,tags:filecount=5,filesize=10M"
堆大小与GC策略需结合应用对象生命周期与停顿目标压测校准。四 Linux内核与系统资源优化
五 应用架构与运维实践