Ubuntu下Tomcat内存溢出定位与解决
一、快速判断与定位
二、常见原因与对应处理
三、配置与优化步骤
四、参数示例与适用场景
| 场景 | 建议参数(示例) | 说明 |
|---|---|---|
| 堆 OOM(JDK 8+) | JAVA_OPTS=“-Xms2g -Xmx2g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m” | 固定堆大小,限制元空间上限 |
| PermGen OOM(JDK 7-) | JAVA_OPTS=“-Xms2g -Xmx2g -XX:PermSize=256m -XX:MaxPermSize=512m” | 仅适用于 JDK 7 及更早 |
| 需要 GC 诊断 | 在上例基础上追加:-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$CATALINA_BASE/logs/gc.log | 便于定位频繁 Full GC 与内存趋势 |
五、重启与验证