在CentOS上进行Tomcat内存调优,核心是通过调整JVM参数优化内存分配与垃圾回收,具体步骤如下:
修改启动脚本
编辑Tomcat安装目录下的bin/catalina.sh文件,添加或修改JAVA_OPTS变量,设置初始堆(-Xms)和最大堆(-Xmx)大小(建议为服务器物理内存的60%-80%),例如:
JAVA_OPTS="$JAVA_OPTS -Xms2g -Xmx4g" # 初始堆2GB,最大堆4GB
推荐使用setenv.sh文件(需手动创建)管理配置,避免直接修改catalina.sh 。
选择垃圾回收器
JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC -XX:MaxGCPauseMillis=100" # 设置最大GC停顿时间
JAVA_OPTS="$JAVA_OPTS -XX:+UnlockExperimentalVMOptions -XX:+UseZGC"
调整年轻代与元空间
-Xmn):通常设置为堆内存的1/3-1/2,例如-Xmn1g(堆内存4GB时)。JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
启用GC日志与监控
添加以下参数生成GC日志,便于分析内存回收情况:
JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"
使用jstat、jmap等工具监控内存使用,例如:
jstat -gcutil <Tomcat_PID> 1000 # 每秒输出一次GC统计
验证与调优
sudo systemctl restart tomcat。ps aux | grep tomcat确认参数已加载,或使用监控工具(如Prometheus+Grafana)实时观察内存指标。注意事项:
参考来源: