天天看點

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

如何配置visualvm監控

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

從上圖中的左邊Applications樹中可以知道,不光可以監控本地JVM運作情況, 還可以監控遠端機器上的JVM運作情況。

本地監控:隻要打開某個JAVA程式就會自動的加入到本地監控中。

要進行遠端監控, 本機的VisualVM就必須和遠端的JVM要進行通信, visualVM目前支援兩種remote connection方式,分别是jstatd和JMX方式:

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

一、通過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=10.202.37.75

-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...

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

b.在彈出的界面中輸入遠端機器的IP位址(10.202.37.75),這個IP位址會加入到Remote節點下.

c.反鍵點選這個IP位址,選擇Add JMX Connection, 在彈出的界面中輸入剛配置的端口号(18999), 這個連接配接會加入到該IP節點下.

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

d.反鍵點選這個連接配接,選擇Open.

此時就可以看到監控的界面, 從界面上我們可以看到CPU資訊, 記憶體資訊, 統計加載類數量,線程資訊.

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

二、通過jstatd連接配接

遠端機器需要啟動一個daemon:jstatd

1、遠端機器啟動jstatd

      1.1、首先需要準備一個java.policy檔案,儲存到如/home/admin/jstatd.java.policy

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

1.2、啟動jstatd(通過如下指令行啟動)

jstatd -J-Djava.security.policy=/home/admin/jstatd.java.policy -J-Djava.rmi.server.logCalls=true      

1.3、 同時需要執行一個指令看看(linux需要)     

Hostname –i
如果顯示是127.0.0.1,則需要修改/etc/hosts檔案,去掉對本機名的配置,讓本機名解析到它的IP位址,如10.20.131.214      

 2、連接配接遠端機器

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

3、點選OK,看到會連接配接到遠端機器,并顯示出它下面的java程序。

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

linux伺服器上啟動的java程式的pid為:

遠端監控JVM之二、 八、jdk工具之JvisualVM之三--可視化監控及LINUX伺服器與用戶端配置方法)、 遠端監控Tomcat、Jstatd

      到 這個時候的操作,就和上面Local的描述操作一樣了。

繼續閱讀