如何检查核心转储文件中Java应用程序的内存泄漏?
问题描述:
当我的jboss应用程序突然停止并且在/ var/crash/path中生成了核心转储文件时,其中包含进程ID。在同一位置没有生成日志。 Java版本是java-1.7.0-openjdk-1.7.0.45.x86_64。我想知道为什么我的应用程序被杀死并生成了这个文件。我怀疑发生了导致此故障的内存泄漏。但是在应用程序日志中没有任何痕迹。如何调试这个代码转储文件(它的大约6 GB)如何检查核心转储文件中Java应用程序的内存泄漏?
答
因为我看不到我们的转储文件,所以我不能确切地说它的内存泄漏。 对于内存泄漏检查,许多工具都在运行应用程序中。 JDK内部还有VisualVM工具在“JDK/bin”文件夹中。 您可以将其指向您的生产服务器。提供@https://developers.redhat.com/blog/2014/08/14/find-fix-memory-leaks-java-application/
其他多种解决方案。如果这从来的第一件事发生之前需要做的是试图重现它。如果你发现了某些东西,如果你能重现它,你打算如何修复它? – efekctive
这个问题在我的生产系统中发生,我无法做任何测试。不幸的是我无法在我的测试环境中重现它。从生产我只有核心转储文件,没有从应用程序日志中追踪 –
它仍然需要读取核心转储。你可以发布吗?我担心,你将不得不等待,直到它再次发生真正开始修复它 – efekctive