Java虛擬機二:使用jvisualvm工具遠程監控tomcat內存


  jdk中自帶了很多工具可以用於性能分析,位於jdk的bin目錄下,jvisualvm工具可以以圖形化的方式更加直觀的監控本地以及遠程的java進程的內存占用,線程狀態等信息。

一、配置tomcat

  在tomcat的 catalina.sh 文件開頭加上如下配置  :

  JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.184.129 -Dcom.sun.management.jmxremote.rmi.port=9999"  

  各參數含義:

   -Dcom.sun.management.jmxremote :是否支持遠程JMX訪問,默認true;

   -Dcom.sun.management.jmxremote.port :是JMX遠程監控端口號,需要在防火牆開放該端口;

   -Dcom.sun.management.jmxremote.ssl=false :表示是否對連接開啟SSL加密,默認開啟;

     -Dcom.sun.management.jmxremote.authenticate=false   :是否需要開啟用戶認證,默認開啟,如果開啟需要額外配置授權文件;

   -Djava.rmi.server.hostname=192.168.184.129 :遠程服務器的主機名;

   -Dcom.sun.management.jmxremote.rmi.port=9999 :RMI端口號,JMX在遠程連接時,會隨機開啟一個RMI端口作為連接的數據端口,可以和JMX端口號相同。

二、配置主機名

  使用 hostname -i 命令查看主機名是否為外網訪問ip  192.168.184.129  :

[root@localhost bin]# hostname -i
127.0.0.1 127.0.0.1

  發現是127.0.0.1,所以需要修改主機名為 192.168.184.129 。

(1)修改  /etc/sysconfig/network  文件

  原文件內容為:

[root@localhost bin]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain

  修改 HOSTNAME 為 192.168.184.129 ,即修改后內容為:

[root@localhost bin]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=192.168.184.129

  修改后使用 service network restart 命令重啟網絡服務。

(2)修改 /etc/hosts 文件

  原文件內容為:

[root@localhost bin]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

  修改 127.0.0.1 為 192.168.184.129 ,並刪除第二行ipv6的配置,即修改后文件內容為:

[root@localhost bin]# cat /etc/hosts
192.168.184.129   localhost localhost.localdomain localhost4 localhost4.localdomain4

  此時使用 hostname -i 命令再次查看主機名,已經修改過來了:

[root@localhost bin]# hostname -i
192.168.184.129

三、配置防火牆

  配置防火牆開放9999端口,編輯 /etc/sysconfig/iptables 文件,加入 -A INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT ,然后 service iptables restart 重啟防火牆服務。

四、配置jvisualvm

  啟動tomcat后,在windows本地jdk安裝路徑bin目錄下找到 jvisualvm.exe ,雙擊打開后左側顯示如下:

                                        

在“遠程”上右鍵-->添加遠程主機-->填寫主機名:

                                             

點擊確定后,遠程選項下多了一條剛才添加的主機列表。右鍵-->添加JMX連接,如下圖,填入JMX遠程連接端口號 9999 ,並勾選“不要求ssl連接”:

                                     

點擊確定后,左側多了一條pid為6822的遠程連接,6822是遠程tomcat的pid:

                                 

雙擊該連接,在右側可以動態查看jvm的概覽信息,監控CPU,java堆,元空間,類,線程等數據:

五、常見問題

  在添加JMX連接的時候,經常會出現如下報錯:

此時可以從以下幾個方向檢查:

(1)檢查tomcat應用是否啟動,或者修改tomcat配置后是否重啟tomcat,確保9999端口處於監聽狀態,查看命令 netstat -nl|grep 9999 ;

(2)檢查主機名是否和tomcat中配置的主機名相同,如果不同則按照第二步修改主機名;

(3)檢查RMI端口號端口號是否在防火牆進行了配置,如果配置的RMI端口號和JMX端口號不一致,需要在防火牆配置RMI端口號允許訪問,如果沒有配置,則添加 -Dcom.sun.management.jmxremote.rmi.port=9999 配置RMI端口號。

 

 

  


免責聲明!

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



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