优化Linux Tomcat的JVM参数可从以下方面入手:
-Xms)和最大堆(-Xmx)为相同值,避免动态调整开销,建议设置为服务器可用内存的80%(如-Xms4g -Xmx4g)。-Xmn)大小,通常占堆的1/3 - 1/2,如-Xmn2g(堆为4g时)。-XX:+UseG1GC -XX:MaxGCPauseMillis=200(设置最大停顿时间,单位ms)。-XX:+UseParallelGC -XX:ParallelGCThreads=CPU核心数。-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m,防止类元数据频繁扩容。-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log(JDK 8)或-Xlog:gc*(JDK 9+)。-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdump.hprof。-XX:+DisableExplicitGC,避免System.gc()触发Full GC。-XX:MaxThreads=500 -XX:MinSpareThreads=50。配置步骤:修改Tomcat启动脚本catalina.sh,在文件顶部添加JAVA_OPTS参数,例如:
export JAVA_OPTS="-server -Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:+PrintGCDetails -Xloggc:/var/log/tomcat/gc.log"
验证与调优:通过jstat -gc <pid>监控GC行为,分析日志调整参数,确保Full GC频率低且耗时合理。
注:参数需根据服务器硬件(CPU、内存)、应用特性(并发量、内存占用)调整,建议先在小规模环境测试。