gpt4 book ai didi

java - Wildfly 10 内存泄漏问题

转载 作者:搜寻专家 更新时间:2023-10-30 21:03:42 25 4
gpt4 key购买 nike

我使用的是 wildfly 10.0.0 最终版。每当我取消部署/部署模块 9-10 次时,我都会收到 java.lang.OutOfMemoryError: GC overhead limit exceeded error 而且 wildfly 的内存使用量一直在缓慢增加并且从不减少,它再次给出 java.lang.OutOfMemoryError: GC overhead limit exceeded 错误。

Wildfly 在取消部署应用程序后不会释放内存并在部署时不断增加,因此导致 GC 开销

早些时候,当我使用 wildfly 9 版本时,它没有出现这个问题。

我通过用最新版本替换核心、servlet 和 websocket 模块尝试了以下链接中给出的修复,但它对我不起作用。

https://developer.jboss.org/message/959286

谁能告诉我如何解决这个问题。

最佳答案

你必须增加你的堆内存。为此

编辑bin/standalone.conf配置文件,寻找第一次出现的JAVA_OPTS

然后根据需要更改 -Xmx 选项。

如果你使用Java 8,那么

改变:

JAVA_OPTS=”-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true”

收件人:

JAVA_OPTS=”-Xms64m -Xmx2G -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=2G -Djava.net.preferIPv4Stack=true”

资源链接:

WildFly 10 — java.lang.OutOfMemoryError: Metadata space

更新:Classes not unloaded after undeployment

Martin kouba 陈述如下

  1. undeploy 并不一定意味着类卸载 - 它取决于JVM 设置(-XX:MaxMetaspaceSize 和 Java8 的 friend )
  2. 我已经验证在附加的 50 个部署/取消部署周期之后复制器(并使用 -XX:MaxMetaspaceSize=128m):

for WildFly 10.0.0.Final "java.lang.OutOfMemoryError: Metaspace" occurs

for WildFly 10.1.0-SNAPSHOT (fix for WFLY-6347 merged) no OOM error occurs (metaspace is garbage collected)

检查堆转储后,我确定了org.jboss.el.cache.BeanPropertiesCache 作为根本原因。在这种情况下,它保留了对 person.joey.test.TestClientBean 类的硬引用,从而有效地阻止了 GC 相关的 ModuleClassLoader。

枚举值的处理方式类似于静态常量 - 即它不会被垃圾回收,除非所有者类的类加载器是。

这就是 person.joey.test.RequestType 值保留在内存中的原因。 OmniFaces 只会放大影响 - 如上所述,它包含对 BeanManager 的引用。

关于java - Wildfly 10 内存泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com