在visualvm中堆转储浏览器?

时间:2015-01-23 14:17:47

标签: java tomcat monitoring visualvm

我在运行Tomcat 7的远程服务器上使用VisualVM监视应用程序。当我尝试打开堆转储浏览器时,我得到的是一个窗口,提示我输入要保存的转储文件的路径但是没有浏览器窗口。

我用以下变量启动tomcat

export JAVA_OPTS="-Dcom.sun.management.jmxremote=true \ -Dcom.sun.management.jmxremote.port=9090 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \ -Djava.rmi.server.hostname=host ip"

连接到远程应用程序时,有没有办法打开堆转储浏览器窗口?

3 个答案:

答案 0 :(得分:2)

不幸的是,没有直接的方法可以做到这一点。您可以使用jVisualVM来监视远程Java进程,但无法进行堆转储。如果您考虑一下,这是有道理的,因为您的堆转储文件(.hprof)通常大小为MB或GB,具体取决于您运行的java进程,并且它不容易捕获并传输所有数据时间。

如果您可以访问该远程服务器上正在运行的程序,请登录并使用jmap通过指向您的java ProcessID来进行堆转储,

jmap -dump:file=absolute-path-of-dumpfile ProcessID

然后将转储复制到您的本地进行分析。

有关详细信息,请参阅此SO link

答案 1 :(得分:1)

您可以使用JProfiler实际执行此操作,但这是一个许可工具。我相信试用版不包含远程JVM的功能。谷歌吧。

答案 2 :(得分:0)

实际上,您可以从远程应用程序中获取堆转储,但您无法立即浏览。该对话框要求您在远程系统上提供将为您保存堆转储文件的路径。要在VisualVM中打开它,您必须手动将文件传输到本地计算机并使用File |在VisualVM中加载...