【发布时间】:2015-06-08 00:34:57
【问题描述】:
我有一个具有一些有趣行为的 J2EE 应用程序......堆似乎表现良好,随着时间的推移随着垃圾收集而增长和缩小。没有明显的整体长期堆扩展。然而,元空间以每小时 20 Mb 的速度稳定增长,直到我们到达 MaxMetaspace 并遇到 OOME。我已经尝试过并行和 G1 垃圾收集器 (jdk1.8.0_40)。
应用程序在执行过程中没有被重新部署,所以它看起来不像是典型的类加载器泄漏。有没有人对如何追踪泄漏的来源有任何建议?
【问题讨论】:
-
你找到答案了吗?
-
您能否提供更多信息:JEE 服务器、使用的库。
-
这是尝试在 Java 8 下的 JBoss 4.2.3.GA 上运行旧版 J2EE 应用程序。这不是受支持的配置,但客户确实想尝试一下。我知道从那时起 JBoss 类加载发生了重大变化,所以我怀疑这是类加载器问题。下面菲利普关于代理生成的猜测可能有一些优点。我们最终决定“咬紧牙关”,将应用程序移植到 Wildfly 8。
-
我也遇到过类似的问题,我们使用wildfly 10,多次重新部署app Metaspace 后抛出oom 错误。增加最大元空间只是一种解决方法,而不是解决方案。我还没有找到任何解决方案。
标签: memory-leaks java-8 classloader permgen metaspace