1. 程式人生 > >使用Java VisualVM監控遠端JVM(linux配置)

使用Java VisualVM監控遠端JVM(linux配置)

我們經常需要對我們的開發的軟體做各種測試, 軟體對系統資源的使用情況更是不可少, 目前有多個監控工具, 相比JProfiler對系統資源尤其是記憶體的消耗是非常龐大,JDK1.6開始自帶的VisualVM就是不錯的監控工具.
這個工具就在JAVA_HOME\bin\目錄下的jvisualvm.exe, 雙擊這個檔案就能看到一個比較直觀的介面

 
從左邊Applications樹中可以知道,不光可以監控本地JVM執行情況, 還可以監控遠端機器上的JVM執行情況.
本地監控:只要開啟某個JAVA程式就會自動的加入到本地監控中.

因為本地監控無需配置, 所以這裡主要介紹監控遠端JVM
要進行遠端監控, 本機的VisualVM就必須和遠端的JVM要進行通訊, Visualvm
目前支援兩種remote connection方式.
分別是
jstatdJMX方式: 這裡我主要介紹的是通過JMX方式.

通過JMX連線遠端機器, 需要經過下面的配置:
1. 修改遠端機器JDK配置檔案
(我這裡遠端機器是linux).
   a.進入JAVA_HOME\jre\lib\management\目錄
   b.
拷貝jmxremote.password.template這個檔案到當前目錄, 並改名為jmxremote.password
    
c.開啟jmxremote.password檔案,去掉 # monitorRole  QED 和 # controlRole  R&D
這兩行前面的註釋符號

2. 修改遠端機器上需要被監控的程式的配置檔案 (我這裡是監控Tomcat容器內部署的應用).
   a.進入TOMCAT_HOME\bin目錄
b.開啟catalina.sh檔案,加入如下資訊:
        JAVA_OPTS
="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.237
-Dcom.sun.management.jmxremote=true
                                                     -Dcom.sun.management.jmxremote.port
=18999

                                                     -Dcom.sun.management.jmxremote.ssl
=false
                                                     -Dcom.sun.management.jmxremote.authenticate=false"
   c.重啟Tomcat服務.

3. 客戶端VisualVM配置 (我客戶端用的是WinXP).
     a.直接反鍵點選Remote,選擇Add Remote Host...
     b.在彈出的介面中輸入遠端機器的IP地址(192.168.0.237),這個IP地址會加入到Remote節點下.
     c.反鍵點選這個IP地址,選擇Add JMX Connection, 在彈出的介面中輸入剛配置的埠號(18999), 這個連線會加入到該IP節點下.
     d.反鍵點選這個連線,選擇Open.

此時就可以看到監控的介面, 從介面上我們可以看到CPU資訊, 記憶體資訊, 統計載入類數量,執行緒資訊.