在野生蝇上重新部署导致了外部存储:元空间

时间:2016-04-21 17:17:07

标签: java spring wildfly-8

我目前正在调查最近我们一直在经历的元空间问题。其中一个主要原因似乎是在重新部署WAR时加载了重复的类。在本地尝试使用我们的一个WARS,通过完全取消部署之后的堆转储,我可以看到应用程序创建的大多数实例仍然存在(即使在垃圾收集之后)。

从堆转储中,我可以看到它似乎是ManagedThreadFactoryImpl持有引用。

我可以做什么/添加到应用程序关闭过程中,以便它自行清理?

我们所有的WAR都是spring应用程序,大多数使用调度/异步元素。

我们在Wildfly 8.2中使用JDK8

1 个答案:

答案 0 :(得分:0)

似乎类加载器没有卸载。尝试Java Mission Control(JMC)并记录用例。这使您可以在录制中转到特定时间点并调试问题。它使用stacktrace,threaddumps和许多重要的东西给出了在特定时间加载的类的快照。

JMC包含在JDK中。您可以在此处找到更多信息:https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr002.html#BABIBBDE

你不必经历采取堆转储的痛苦,然后等待工具分析它。