Ubuntu下解决Tomcat内存溢出的实用步骤
一 定位错误类型
二 快速修复 JVM 内存参数
| 场景 | 关键参数示例 | 说明 |
|---|---|---|
| Java 8 及更早(堆 + PermGen) | JAVA_OPTS=“-server -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m” | 将堆与永久代设大,避免 PermGen OOM |
| Java 8+(堆 + Metaspace) | JAVA_OPTS=“-server -Xms2048m -Xmx2048m -XX:MaxMetaspaceSize=512m” | 用 Metaspace 替代 PermGen,按需设上限 |
| 栈溢出 | JAVA_OPTS=“… -Xss256k” | 仅在出现 StackOverflowError 时考虑增大线程栈 |
三 验证参数是否生效与运行期观测
四 常见诱因与对应处理
五 示例配置与重启