本人的visualvm是1.4.2的mac版本
首先,需要連接遠程服務器:
右擊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,可以看到添加成功: