使用jvisualvm.exe工具遠程監視tomcat的線程運行狀態


一、簡述

     在web項目中,常使用tomcat作為web容器。代碼編寫的時候,由於業務需要,也常會使用線程機制。在系統運行一段時間之后,若出現響應慢或線程之間出現死鎖的情況,要查出問題所在,需要使用jdk 提供的 jvuisualvm 工具,通過該工具監視tomcat的線程運行情況,從而解決問題。

    tomcat分為linux和windows版的,不同的版本若想使用jvuisualvm進行線程監視,需要進行不同的配置。

二、linux版本的tomcat配置

    為了讓本機器上的jvuisualvm 工具能夠監視遠程機器上(linux)的tomcat中線程運行狀況,tomcat需要修改其對應配置。修改如下:

(1) 修改catalina.sh文件

   打開該文件,在綠色注釋上加入以下配置。

CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.2.145.108"
# ----- Execute The Requested Command -----------------------------------------

其中紅色所指IP是tomcat所屬服務器的IP。藍色所指端口為jmx連接時的端口。

(2) linux防火牆配置

在(1) 中指定了jmx連接的端口,此時需要查看linux是否開啟,若開啟,可以將防火牆關閉,或者將端口設置到防火牆中允許通過。

三、windows版本的tomcat配置

    windows版本的tomcat,需要查看其啟動方式,若是注冊成了服務,可以通過以下方式進行配置:

(1) 更改注冊表:

  

在注冊表中找到圖中位置。

    雙擊 Options 在其中添加

-Dcom.sun.management.jmxremote

-Djava.rmi.server.hostname=XXXX.XXXX.XXXX(雙網卡的需要指明,單網卡的可以不指定)
-Dcom.sun.management.jmxremote.port=1090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

   之后再重啟tomcat服務即可。

若重啟不成功,請檢查添加的這幾行是不是后面有空格。(若有多余的空格是啟動不了的)

四、jvuisualvm調試

(1) windows下打開java安裝目錄bin目錄下的jvisualvm.exe(C:\Program Files\Java\jdk1.7.0_45\bin);

(2)在遠程上右鍵,添加遠程主機;

 

(3)、在添加的遠程主機上右鍵,添加Jmx(此處不需要密碼,點擊確定即可);

 

(4)、雙擊連接查看Jvm運行情況

 

 

 

 

圖中紅色的表示出現了死鎖的情況,可以通過導出dump來查看問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM