修改Tomcat启动脚本catalina.sh(位于$CATALINA_HOME/bin/目录),通过设置JAVA_OPTS参数调整内存。
-Xms:初始堆内存大小(如-Xms512m,建议与-Xmx保持一致以减少GC开销)。-Xmx:最大堆内存大小(建议不超过物理内存的50%,如服务器内存16GB,可设为8GB-12GB)。-XX:PermSize/-XX:MaxPermSize:永久代内存(仅JDK 7及之前需设置,JDK 8+已被元空间取代,无需配置)。-XX:NewSize/-XX:MaxNewSize:年轻代内存大小(建议设置为堆内存的1/3-1/2,如-Xms2g -Xmx2g -XX:NewSize512m -XX:MaxNewSize512m)。-XX:+UseG1GC(推荐,适用于大内存场景)或-XX:+UseConcMarkSweepGC。编辑启动脚本
sudo vi $CATALINA_HOME/bin/catalina.sh
在文件开头添加或修改JAVA_OPTS,例如:
JAVA_OPTS="-server -Xms2048m -Xmx2048m -XX:NewSize512m -XX:MaxNewSize512m -XX:+UseG1GC -Djava.awt.headless=true"
说明:
-server启用服务器模式;-Djava.awt.headless=true避免无图形界面报错。
重启Tomcat生效
sudo systemctl restart tomcat
验证配置
通过以下命令查看内存参数是否生效:
ps aux | grep tomcat # 查看进程参数中的 -Xms、-Xmx
# 或查看启动日志
tail -f $CATALINA_HOME/logs/catalina.out
-Xms与-Xmx尽量相等,避免堆内存动态调整带来的性能损耗。jstat或VisualVM监控内存使用情况,根据应用负载调整参数。| 服务器内存 | 推荐配置(JDK 8+) | 说明 |
|---|---|---|
| 8GB | -Xms4g -Xmx4g -XX:NewSize1g |
平衡型配置,适合中小型应用 |
| 16GB | -Xms8g -Xmx8g -XX:NewSize2g |
大型应用,启用G1垃圾回收器 |
| 32GB+ | -Xms16g -Xmx16g -XX:NewSize4g |
高并发场景,需结合监控调整 |
参考来源: