1.下载:

https://visualvm.github.io/download.html

 

2.解压

 

3.运行

 /Desktop/visulaVM/visualvm_142/bin$ ./visualvm --jdkhome /usr/java/jdk1.8.0_172

 

使用:例如查看GC

使用插件:tools-->plugins-->available Plugins-->Visual GC    install

 

 

然后,点击一个应用或线程:查看

 

用visualvm观察远程服务器java项目的两种办法:

原文:https://www.cnblogs.com/zuxiaoyuan/p/10078588.html

首先,需要连接远程服务器:

右击remote,选择add remote host

填写远程服务器地址:

 

 准备工作已经做好,下面将visual vm的两种连接远程java的方法。

法一:jstatd

用jstatd需要在远程服务器上启动一下jstatd,步骤如下:

【远程服务器上】

1.cd ${JAVA_HOME}/bin

2.sudo vi jstatd.all.policy

 

 其中jstatd.all.policy 文件内容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {

permission java.security.AllPermission;

};

3.jstatd -J-Djava.security.policy=jstatd.all.policy &

 

 此时jstatd启动成功,在本地的visualvm可以看到如图,可以进行自行查看。

 

法二:用jmx

 【远程服务器】上

1.

cd ${JAVA_HOME}/
cd jre/
cd lib/
cd management/
cp jmxremote.password.template jmxremote.password
sudo vi jmxremote.password

文件中将monitorRole  QED和 controlRole   R&D前的注释去掉,然后保存

2.更改java参数

我用的是supervisor进行java进程管理。

cd /etc/supervisord.d/

在java启动项里加上

-Djava.rmi.server.hostname=【远程服务器的ip】 -Dcom.sun.management.jmxremote.port=18999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

3.重启supervisor

sudo supervisorctl reload

 

在本地的visual vm上添加jmx

填上你的远程服务器的ip以及刚刚在java参数里配的端口18999:

 

 点击ok,可以看到添加成功:

 

posted on 2019-05-24 16:17  lshan  阅读(1454)  评论(0编辑  收藏  举报