環境說明:
a:阿里雲服務器Centos8.2
b:JDK1.8
1:增加JVM運行參數
java -jar 啓動時添加一下參數:
-Djava.rmi.server.hostname=外網IP地址
-Dcom.sun.management.jmxremote.port=jmx端口
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote=true
這部分要注意防火牆設置以及服務器安全組的設置。
啓動jmx後除了java應用本身佔用的端口外會額外佔用三個端口,一個指定端口+兩個隨意監聽端口,
這四個端口都必須開放防火牆限制,否則本地的JVisualVM 會無法連接。
使用telnet 調試端口是否可用:
出現這樣的提示就表明可以外網連接jmx了。
2:使用JVisualVM連接
我的 JVisualVM.exe 在C:\Program Files\Java\jdk1.8.0_181\bin 目錄下,也就是jdk目錄。
1:添加遠程主機
2:添加遠程JMX連接
輸入IP+端口即可連接成功(服務器防火牆設置沒問題的前提下!)
效果圖:
3:總結
其實這玩意在實際工作中沒啥用,因爲生產項目中不會開通jmx的端口。
還是熟練使用jstat、jmap、jstack、jps 等命令用處更大也更方便!