将Java VisualVM堆空间转储到输出路径

3
我需要知道在Java VisualVM中是否可以声明堆空间转储的输出路径。是否有我可以用于Java Visual VM的任何参数?
我必须跟踪服务器上的特定服务并需要获取堆空间的转储。
谢谢。
更新
非常感谢。我为我的问题找到了解决方案。我使用JMX远程连接到了我的服务。在那里,可以将堆转储保存在服务器的任何其他驱动器上。

请问,为什么需要更改堆转储的输出路径?如果您需要监视应用程序的堆转储,可以从VisualVM获取。无需更改输出路径。 - Tomas Hurka
我的主分区没有足够的空间来保存堆转储。 - Dragonex
3个回答

4
您可以使用以下visualvm.tmpdir系统属性来更改VisualVM存储快照、线程转储和堆转储的目录。用法:
visualvm -J-Dvisualvm.tmpdir=[custom_tmp_dir]

链接已失效。 - Vsevolod Golovanov
链接已失效,已删除。 - Tomas Hurka

2
您可以通过以下方式在/etc/visualvm.conf文件中更改VisualVM使用的临时目录的位置:
    visualvm_default_options=" ...  -J-Djava.io.tmpdir=<PATH> -J-Dvisualvm.tmpdir=<THE SAME PATH>"

2

对于VisualVM 1.4.4,需要在etc/visualvm.conf中进行以下设置:

visualvm_default_userdir="<set-your-path>"
visualvm_default_options="<...> -J-Djava.io.tmpdir=<set-your-path>"
  • visualvm_default_userdir设置了基于jmx的堆转储。
  • visualvm_default_options设置了基于进程的堆转储。

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