分析远程大型堆转储

Analyze remote large heap dump

我在远程 Debian 机器上有大约 70 GB 的 Java 堆转储,我无法在我的本地机器上使用 MAT 分析它,尽管我可以获得概述和可疑泄漏报告 HTML 页面,但它们很简短,并且那里的对象没有指向任何东西的 href(也许 MAT 并不意味着在那里创建实际链接,而只是为了样式目的)。

但是,有没有办法完全分析那么大的堆转储?

如果您无法在该服务器上 运行 MAT,那么您可能需要 运行 jhat 实用程序。

它将 运行 端口上的 Web 服务器(您可以覆盖)并将提供一个 Web 控制台和称为 OQL(对象查询语言)的查询语言,您可以使用它来分析堆转储。看起来有点像 SQL.

这是一个例子:

jhat -J-Xmx32g -port 7000 <PATH_TO_HEAPDUMP>

然后在浏览器中访问:

http://<IP>:7000

关于OQL的教程很多,here就是其中之一