【发布时间】:2019-04-19 08:27:48
【问题描述】:
我的 Linux 服务器上安装了 JDK8 x64,有 16GB 的 RAM 和 8 个 CPU。
我已经如下设置了 JVM 堆大小,但不断收到 java.lang.OutOfMemoryError
JAVA_OPTS="-Xms2048m -Xmx4096m -XX:MaxPermSize=1024m -XX:-UseGCOverheadLimit
任何建议,最小/最大/PermGen 堆大小应该是多少。
【问题讨论】:
-
这完全取决于您正在运行的应用程序。您能否就此提供更多见解?
-
不断收到 java.lang.OutOfMemoryError 比你拥有的更多
-
顺便说一句。如果您正在运行 Java 8 应用程序,您可以摆脱
-XX:MaxPermSize=1024m。 Java8 不再支持此功能(用于加载的类和方法的内存模型不同且不受限制(使用默认设置)) -
如果您不知道发生了什么,请尝试生成堆转储:
-XX:+HeapDumpOnOutOfMemoryError。比你可以看到是什么消耗了所有的内存。 -
@PeterLawrey 我们可以排除 Java 8 安装的 permgen 问题。
标签: java jvm 64-bit heap-memory permgen