jvm 分析远程大型堆转储

e4yzc0pl  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(79)

我在远程Debian机器上有大约70 GB的Java堆转储,我不能在我的本地机器上使用MAT分析它,虽然我可以得到一个概述和可疑的泄漏报告作为HTML页面,但它们很简短,并且有href对象,没有指向任何东西(也许MAT并不意味着在那里创建实际的链接,只是为了样式化目的)。
但是,是否有任何方法可以完全分析这种大小的堆转储?

w8biq8rn

w8biq8rn1#

如果您不能在该服务器上运行MAT,那么您可能需要运行jhat实用程序。
它将在一个端口上运行Web服务器(您可以覆盖该端口),并将提供一个Web控制台和称为OQL(对象查询语言)的查询语言,您可以使用它来分析堆转储。它看起来有点像SQL。
下面是一个例子:

jhat -J-Xmx32g -port 7000 <PATH_TO_HEAPDUMP>

然后在浏览器中访问:

http://<IP>:7000

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

py49o6xq

py49o6xq2#

你可以使用无头MAT分析器脚本来检查top组件(使用org.API:top_components),这可能会有所帮助。
如果Leak怀疑没有提供足够的信息,那么顶级组件可以给予洞察哪个bean占据了更多空间。所以你可以检查与之相关的方法。
https://stackoverflow.com/a/76298700/5140851

相关问题