JDK jstatd 結合Java VisualVM進行遠程監控JVM運行情況

開啓jstatd監控本機Java進程服務

/opt/java/jdk1.8.0_131/jre/lib/security/java.policy 添加權限

permission java.security.AllPermission;

執行命令

/opt/java/jdk1.8.0_131/bin/jstatd 
-J-Djava.security.policy=jstatd.all.policy 
-J-Djava.rmi.server.hostname=xx.xx.xx.xx
 -J-Djava.rmi.server.logCalls=true 
(default -p 1099)

查看服務
jstatd啓動後會打開兩個端口,其中一個端口可通過參數“-p”指定,如果不指定默認爲1099,另一個是一個隨機端口,不能參數指定:

sudo netstat -lpnt | grep jstatd
tcp        0      0 0.0.0.0:1099            0.0.0.0:*               LISTEN      27519/jstatd
tcp        0      0 0.0.0.0:46461           0.0.0.0:*               LISTEN      27519/jstatd

46461是一個隨機端口,不方便穿透防火牆。這導致了一個問題,有防火牆時,JVisualVM將無法和jstatd正常通訊。看到的現象將如下

FINER: RMI TCP Connection(2)-xx.xx.xx.xx: [xx.xx.xx.xx: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(java.lang.String)]

Java VisualVM 進行連接查看

打開java visualVM

/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/jvisualvm

連接
在這裏插入圖片描述
裝插件
在這裏插入圖片描述

查看
在這裏插入圖片描述

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