我们有 JBoss EDS 服务器在生产中运行,它正在消耗大量内存。我们将内存从 4GB 增加到 8GB,我们看到内存消耗仍在逐步增加,最后出现 OutOfMemoryError 和服务器宕机。怀疑是我们的应用程序存在内存泄漏。
我们想看看是什么导致了这个问题?我们可以访问 JMX 控制台,并且在线程中看不到任何可能导致此问题的内容。我们想看看哪些对象正在增长以及它们使用了多少内存。JMX 控制台在这方面如何帮助我?
我发现 JBoss 内存分析器可以提供帮助,但服务器没有在生产实例上安装分析器。显然,我们无法在生产中安装并重新启动。它会产生后果。
我们还发现服务器正在运行 OpenJDK。有人见过在 OpenJDK 上运行 JBoss AS 的任何问题吗?OpenJDK 中用于垃圾收集的算法有多好?