1. 程式人生 > >使用jvisualvm、jmc遠端監控JVM

使用jvisualvm、jmc遠端監控JVM

演示環境:jdk1.8

jvisualvm和jmc都是JDK自帶的監控工具。jmc監控資料比jvisualvm更加豐富。它們都在JDK bin目錄中

首先介紹jvisualvm的使用

開啟bin/jvisualvm.exe


本地的JVM程序都已經識別出來了,直接點選即可監控。

為了使jvisualvm功能更加強大,需要安裝一些外掛  執行jvisualvm ,選擇【工具】——【外掛】——【可用外掛】全選安裝即可。

預設jvisualvm不能監控遠端的JVM程序,需要進行一些配置。這裡介紹兩種方式

方法一: 單獨在應用上配置如下JVM啟動引數

-Djava.rmi.server.hostname=192.168.200.136 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

其中java.rmi.server.hostname配置的是執行JVM所在的機器IP

配置好啟動引數之後,重啟應用

在jvisualvm裡面新增遠端主機 192.168.200.136,然後右鍵新增JMX連線


輸入上面配置的埠即可。 之後就可以看到各種監控的資料了,很多都是實時的。


方法二:使用jstatd

新建一個檔案jstatd.all.policy(名字隨意),內容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {  
   permission java.security.AllPermission;  
};

然後,執行  jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.200.136

在jvisualvm裡面新增遠端主機 192.168.200.136,然後右鍵新增jstatd連線,埠預設。jvisualvm即可掃描出所有正在執行的JVM,點選即可監控

對比兩種方式,第一種需要在每個JVM引數中都要配置。第二種不需要配置應用的JVM引數,只需要額外啟動一個jstatd即可

接下來介紹另一個JDK自帶的監控工具jmc,開啟bin/jmc.exe 之後,jmc即可掃描出本地執行的JVM程序


選擇一個程序,點開選擇MBean伺服器,右鍵 啟動JMX控制檯,即可看到監控資訊


如果想要用jmc監控遠端的JVM程序,配置方式和jvisualvm方式一一樣即可。