修改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 |
高并发场景,需结合监控调整 |
参考来源: