Ubuntu 下 Tomcat 内存分配指南
一 配置位置与优先级
#!/bin/bash
export CATALINA_OPTS="$CATALINA_OPTS -Xms2g -Xmx2g -XX:+UseG1GC"
chmod +x $CATALINA_BASE/bin/setenv.sh
sudo systemctl restart tomcat9 # 版本号可能不同
二 关键 JVM 参数与建议值
三 快速示例
#!/bin/bash
export CATALINA_OPTS="$CATALINA_OPTS \
-server \
-Xms2g -Xmx2g \
-Xmn1g \
-XX:PermSize=256m -XX:MaxPermSize=256m \
-XX:+UseG1GC \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$CATALINA_BASE/logs/gc.log \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/logs/heap.hprof"
#!/bin/bash
export CATALINA_OPTS="$CATALINA_OPTS \
-server \
-Xms4g -Xmx4g \
-Xmn2g \
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m \
-XX:+UseG1GC \
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$CATALINA_BASE/logs/gc.log \
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_BASE/logs/heap.hprof"
上述示例体现了常见的堆/年轻代配比、GC 选择与日志/堆转储开关,便于问题排查与容量规划。四 验证与常见注意