我们正在使用
随着每次部署,元空间不断增加并且没有被垃圾收集
注意:我们已经设置了
-XX:MaxMetaspaceSize
参数,一旦元空间达到阈值就会触发GC
以下是
standalone.conf
中的配置
-Xms64m -Xmx2048m -XX:NativeMemoryTracking=detail -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m
我们已经获取堆转储并使用 MAT 进行进一步分析,看起来
org.jboss.modules.ModuleClassLoader
在后续部署后没有被清除。
即使未部署也观察到相同的行为。
我们尝试了以下组合,但行为是一样的,元空间没有被清除
openjdk11 + wildfly-17.0.1.Final
openjdk11 + wildfly-18.0.1.Final
openjdk16 + wildfly-17.0.1.Final
我们正试图找到这个问题的根本原因,它是否与 JBoss 模块的内部实现相关,即使在取消部署或重新部署后它仍将类保留在内存中,或者我们是否在这里遗漏了其他东西?