VisualVM遠程連接監控JVM(JMX連接)

VisualVM是JDK自帶的一款java應用性能監測工具。它可以做到:

  • 顯示虛擬機進程以及進程的配置,環境信息
  • 監視應用程序的CPU,GC,堆,方法區以及線程的信息
  • dump以及分析堆轉儲快照
  • 方法級的程序運行性能分析,找出調用最多,運行時間最長的方法
  • 離線程序快照:收集程序的運行時配置,純種dump,內存dump等信息建立一個快照,可以將快照發送給開發者進行Bug反饋
  • 其他pulgins的功能支持。。。
    當我們的應用上線(一般都會佈署在虛擬機上)後,有時需要對其進行性能分析,此時我們可以用本地的VisualVM遠程連接虛擬機上的應用來達到查看監控JVM的目的

開始

我這裏啓動的是springboot應用,是以jar包形式啓動的哦。
先看一下當前的主機地址是否和公網地址(外網訪問的地址)一致

hostname -i

如果顯示的地址不一致的話,請先在/etc/hosts文件裏添加一行,例如

47.106.xxx.xxx wesker

然後再執行看看生效了沒有

hostname wesker
hostname -i

加入啓動參數

java \
#添加jmx遠程支持start
-Djava.rmi.server.hostname=47.106.xxx.xxx \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=33306\
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
#添加jmx遠程支持end
-jar web.jar

這裏沒有開戶登陸鑑權和ssl連接,所以authenticate=falsessl=false
端口需要配置允許遠程訪問,具體配置流程可參考我的另一篇文章
阿里雲服務器(centos7) 設置mysql賬號密碼開放3306端口實現遠程登陸

VisualVM建立連接

在本地(windows)jdk目錄下的bin目錄裏,打開jvisualvm.exe,右鍵“遠程”添加主機名

image.png


然後添加JMX連接

image.png


輸入ip:port直接點擊確定完成連接

image.png


如果提示
無法使用 service:jmx:rmi:///jndi/rmi://xxx.xxx.xxx.xxx:33306/jmxrmi 連接到 xxx.xxx.xxx.xxx:33306
請把防火牆關一下

 

service iptables stop

因爲除了JMX server指定的監聽端口號外,JMXserver還會監聽一到兩個隨機端口號,如果你不想關閉防火牆可以執行以下操作:

  1. 拿到當前監聽的端口
netstat -tupln |grep 33306

image.png

  1. 查看監聽的隨機端口
#lsof 沒有安裝的話 安裝一個 yum install lsof
lsof -i|grep 2516

image.png

  1. 把這幾個端口配置到安全組規則去吧(很麻煩,每次都要設置,所以我直接關防火牆省事多了)

結束

看一下連接成功的界面吧

 

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章