Wildfly:即使在 GC 后元空间也没有被清除

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

我们正在使用

  1. OpenJDK 11
  2. Wildfly-17.0.1.Final
  3. Spring + Hibernate应用(在Wildfly中部署为WAR)

随着每次部署,元空间不断增加并且没有被垃圾收集
注意:我们已经设置了

-XX:MaxMetaspaceSize
参数,一旦元空间达到阈值

就会触发GC

以下是

standalone.conf

中的配置
-Xms64m -Xmx2048m -XX:NativeMemoryTracking=detail -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m

我们已经获取堆转储并使用 MAT 进行进一步分析,看起来

org.jboss.modules.ModuleClassLoader
在后续部署后没有被清除。

即使未部署也观察到相同的行为。


我们尝试了以下组合,但行为是一样的,元空间没有被清除

  1. openjdk11 + wildfly-17.0.1.Final

  2. openjdk11 + wildfly-18.0.1.Final

  3. openjdk16 + wildfly-17.0.1.Final

我们正试图找到这个问题的根本原因,它是否与 JBoss 模块的内部实现相关,即使在取消部署或重新部署后它仍将类保留在内存中,或者我们是否在这里遗漏了其他东西?

jboss wildfly java-11 metaspace wildfly-17
© www.soinside.com 2019 - 2024. All rights reserved.