wildfly 17 BinderService 内存泄漏

问题描述 投票:0回答:1

我有一个在 java 11 上运行的 Wildfly 17.0.1-final 服务器。 几周以来,我尝试让它连续运行,而不是每晚重新启动它。我遇到了一些 OutOfMemoryError 。所以我正在寻找泄漏。

首次与 JSTAT 建立 : 几个小时后,我可以使用 jstat 查看内存使用情况(E = eden/young,S = Survivor 0+1,O = old,M = 元空间):

 2024-02-05 14:19:01 :   757 Mo            [ E=   56 ; S=   32 ; O=  427 ; M=  242 ]

几天后:

 2024-02-08 14:57:02 :  1562 Mo            [ E=  164 ; S=   20 ; O= 1109 ; M=  269 ]

如您所见,“旧”空间在 72 小时内增长了 700 Mo

内存转储: 我已经完成了内存转储并在 MAT(Eclipse 内存分析器)中打开它们。第一个是在 Wildfly 启动后报告内存占用为 300 MB。工作 60 多个小时后的第二个报告报告内存占用为 900 MB。 第二个转储报告 MSC 注册表中存在内存泄漏:

由《org.jboss.msc 模块的模块类加载器》加载的《 org.jboss.msc.service.ServiceControllerImpl 》的一个实例占用 610317912 (65,09 %) 字节。内存累积在《 java.lang.Object[] 》的一个实例中,由《  》加载,占用 610310360 (65,08 %) 字节。

线程 « org.jboss.msc.service.ServiceContainerImpl$ServiceThread @ 0x3c01e4968 MSC 服务线程 1-1 » 有一个本地变量或对 « org.jboss.msc.service.ServiceContainerImpl @ 0x3c09140e8 » 的引用,该变量位于最短路径上« java.lang.Object[47427] @ 0x3f0d928d8 »。线程 org.jboss.msc.service.ServiceContainerImpl$ServiceThread @ 0x3c01e4968 MSC 服务线程 1-1 保留总大小为 4552 (0,00 %) 字节的局部变量。

如果我查看保留 600 MB 内存的对象数组,它似乎包含 32248 个 org.jboss.as.naming.service.BinderService 实例

所以,这就是泄漏。但我该如何解决呢?有什么方法可以处理这些 BinderServices 吗?

我在 google 上没有找到任何有关 BinderService 内存泄漏的信息。

感谢您的帮助

wildfly
1个回答
0
投票

您可能会发现一个内存泄漏的错误,请尝试在此处提出问题: https://issues.redhat.com/projects/WFLY/issues/WFLY-18700?filter=allopenissues

© www.soinside.com 2019 - 2024. All rights reserved.