Ubuntu Tomcat响应速度优化策略
一 基线测量与瓶颈定位
ab -n 1000 -c 50 http://localhost:8080/app/,记录 95%/99% 响应时间、吞吐量、失败率;压测前确保测试环境网络与数据库接近生产。二 Tomcat 连接器与线程模型优化
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000" redirectPort="8443"
maxThreads="200" minSpareThreads="50" acceptCount="250"
URIEncoding="UTF-8" enableLookups="false"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,application/json" />
以上参数需结合业务与压测结果微调,避免“线程过多”和“队列过长”同时出现。三 JVM 与垃圾回收调优
-XX:+UseG1GC);吞吐优先且多核充分时可选 Parallel GC(-XX:+UseParallelGC)。-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc.log),结合 JMX/VisualVM 观察停顿时间与回收频率,按指标回调参数。JAVA_OPTS="$JAVA_OPTS -server -Xms2g -Xmx2g"
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC"
JAVA_OPTS="$JAVA_OPTS -XX:NewRatio=2"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/tomcat/logs/gc.log"
注意:JDK 8 之前才需要设置 PermSize/MaxPermSize;JDK 8+ 使用 Metaspace,无需设置 Perm 相关参数。四 Ubuntu 系统层面优化
rngd,或在 $JAVA_HOME/jre/lib/security/java.security 中将 securerandom.source 调整为 /dev/./urandom(注意安全权衡)。sysctl -p 使配置生效,并在变更窗口内观察稳定性。五 应用与数据库层优化