分析远程大型堆转储文件

3

我在远程Debian机器上有一个大约70GB的Java堆转储文件,但是我无法在本地使用MAT进行分析。尽管我可以获得HTML页面的概述和可疑泄漏报告,但它们很简洁,并且其中的对象href指向了不存在的内容(也许MAT并不是要创建实际链接而只是用于样式目的)。

然而,有没有办法完全分析这么大的堆转储文件呢?

2个回答

2
如果您无法在该服务器上运行MAT,则可以运行jhat实用程序。
它将在一个端口上运行Web服务器(您可以覆盖该端口),并提供名为OQL(对象查询语言)的Web控制台和查询语言,您可以使用它来分析堆转储。 它看起来有点像SQL。
这是一个例子:
jhat -J-Xmx32g -port 7000 <PATH_TO_HEAPDUMP>

然后在浏览器中访问:

http://<IP>:7000

有很多关于OQL的教程,这里是其中之一


0

你可以使用无界面的MAT分析器脚本来检查顶级组件(使用org.eclipse.mat.api:top_components),这可能会有所帮助。

如果泄漏嫌疑不足以说明问题,那么顶级组件可以提供洞察力,了解哪个bean占用了更多的空间。因此,您可以检查与其相关的方法。

https://dev59.com/12w05IYBdhLWcg3wahJM#76298700


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接