對於完全沒用使用過visualVM的初學者
環境:Windows PC上使用visualVM監控遠端JVM
@@@@jstatd方式連接@@@@
1、Windows安裝jdk,$JAVA_HOME/bin/jvisualvm.exe,jdk自帶圖形化監控工具,雙擊運行
2、linux安裝jdk, $JAVA_HOME/bin 下創建一個新文件 jstatd.all.policy,編輯該文件,填入內容,配置環境變量,若沒有配置,file后面添加tool.jar的絕對路徑
grant codebase"file:${java.home}/../lib/tools.jar"{ permission java.security.AllPermission; };
3、linux $JAVA_HOME/bin下執行以下命令/前台啟動,也可以后台啟動命令,默認監聽1099端口
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=168.0.0.1
-J-Djava.rmi.server.hostname=168.0.0.1 顯示指定linux的可監控地址
最好明確指定linux可以訪問的ip,若Windows與linux在同一個網段,填寫內網地址,若不在一個網段則填寫公網地址
4、lsof -i:1099 查看端口是否正常被監聽
[root@IDC-SJZ-04 ~]# lsof -i:1099 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME jstatd 29860 root 10u IPv6 130302012 0t0 TCP *:rmiregistry (LISTEN) jstatd 29860 root 11u IPv6 130302013 0t0 TCP IDC-SJZ-04:46694->IDC-SJZ-04:rmiregistry (ESTABLISHED) jstatd 29860 root 12u IPv6 130302014 0t0 TCP IDC-SJZ-04:rmiregistry->IDC-SJZ-04:46694 (ESTABLISHED)
5、jvisualvm 添加ip為168.0.0.1 默認端口為1099的遠程機器,這樣可以使用jstatd方式遠程監控JVM
@@@@JMX方式連接@@@@
1、Windows jvisualvm運行方式不變
2、linux tomcat/bin/cataline.sh中添加以下語句並保存
-Dcom.sun.management.jmxremote.port=9010 指定JMX連接端口
-Djava.rmi.server.hostname=62.186.145.3 指定JMX連接地址 若Windows與linux在同一個網段,填寫內網地址,若不在一個網段則填寫公網地址
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=62.186.145.3"