java - 分析远程大型堆转储

标签 java jvm 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就是其中之一

关于java - 分析远程大型堆转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57841372/

相关文章:

java - 错误 : org. apache.xerces.dom.DeferredTextImpl 无法转换为 org.w3c.dom.Element

java - JVM、JDK、JRE 和 OpenJDK 有什么区别?

java - 给定 Class< 是否可以实例化 Java Annotation?扩展注解>?

java - 如何将实例从 Nominal 转换为 Binary

java - 对同一个对象有多个引用是不是很糟糕?

java - java中的运行时字节码更新和性能

java - 如何使用 kill -3 <pid> 命令每 30 秒进行一次 java 堆转储

c++ - 进程挂起调试 C/C++

java - 如何获取堆转储中使用的对象 ID

java - 加载并保存到txt文件