我面临着元空间堆积的问题,即使在主要的GC期间也没有清除。下面是我的Tomcat JVM
-XX:+UseAdaptiveGCBoundary -XX:+UseG1GC -XX:CompressedClassSpaceSize=1024m -XX:MaxMetaspaceSize=1024m -Xms2048m -Xmx2048m
(我正在运行带有16GB RAM的AWS实例)
我可以注意到meta空间不断增加(高水位标记的变化)动态,我觉得它自分配限制以来的变化是1 GB,当发生重大垃圾收集时,我希望卸载未使用的类。但那不应该发生。
在15分钟内,主要的大垃圾一直在继续,堆空间看起来很健康(它清理了它中的物体)但是Meta空间从未。所以我们必须重新启动Tomcat以解决这个问题。
我应该考虑MinFreespaceRatio = 60吗?那么G1GC会诱导垃圾收集吗?
我打算在生产实例上运行jmap -clstat
,我应该在那个元空间转储上看到什么?