我在Metaspace中的内存不足。据我了解,在谷歌之后,Metaspace中的内存不足错误可能是由于Classloader中的泄漏造成的。为此,我开始分析Eclipse MAT中的堆转储,并打开“Class Loader Explorer”,其中提供了以下内容:

我的理解正确吗?
在我选择此行并打开"Path to GC Roots all phantom/soft/soft Ref“之后,我观察到浅的->和保留的堆分别为96和231,040。
在'Class Loader Explorer‘中为类org.apache.felix.framework.BundleWiringImpl$BundleClassLoader选择了另一行,并再次打开"Path to GC Root -> exclude all phantom/弱/soft Ref“之后,现在我看到了这个数据:

根据这些数据,是否可以安全地得出这样的结论:在这个类中存在一个未被垃圾收集的泄漏: com.newrelic.agent.util.DefaultThreadFactory$AgentThreadImpl?
如果没有,请建议我还应该检查什么?
发布于 2021-06-23 16:46:13
com.newrelic.bootstrap.BootstrapAgent$JVMAgentClassLoader占用了396,707个未被垃圾回收的实例。我的理解正确吗?这意味着
com.newrelic.bootstrap.BootstrapAgent$JVMAgentClassLoader已经加载了2627个类,这些类有396,707个实例。就其本身而言,这看起来不像是一个问题。
重复的类可能是一个很好的查询,用于查看某个类是否已在一个类加载器中加载,然后再次加载(可能是因为它已更新),但旧的类加载器未被释放。
线程com.newrelic.agent.util.DefaultThreadFactory$AgentThreadImpl是否应该是活动的。检查线程概述查询以了解它在做什么?
https://stackoverflow.com/questions/65766625
复制相似问题