我需要知道是否可以在java visualVM中声明堆空间转储的输出路径。我可以使用任何参数用于java visual VM吗?
我必须在服务器上跟踪特定服务,并且需要转储堆空间。
感谢。
的更新 的
非常感谢。我找到了解决问题的方法。我用jmx remote连接到我的服务。可以将heapdump保存在服务器的任何其他驱动器上。
答案 0 :(得分:4)
您可以使用以下visualvm.tmpdir
系统属性来更改目录,其中VisualVM存储快照,线程转储和堆转储。用法:
visualvm -J-Dvisualvm.tmpdir=[custom_tmp_dir]
答案 1 :(得分: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
将其设置为基于进程的堆转储。答案 2 :(得分:1)
您可以更改VisualVM在/etc/visualvm.conf文件中使用的临时目录的位置,如下所示:
visualvm_default_options=" ... -J-Djava.io.tmpdir=<PATH> -J-Dvisualvm.tmpdir=<THE SAME PATH>"