您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在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命令查看主機名是否為外網訪問ip192.168.184.129:
[root@localhost bin]# hostname -i127.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/networkNETWORKING=yesHOSTNAME=localhost.localdomain
修改HOSTNAME為192.168.184.129,即修改后內容為:
[root@localhost bin]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=192.168.184.129
修改后使用service network restart命令重啟網絡服務。
(2)修改/etc/hosts文件
原文件內容為:
[root@localhost bin]# cat /etc/hosts127.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/hosts192.168.184.129 localhost localhost.localdomain localhost4 localhost4.localdomain4
此時使用hostname -i命令再次查看主機名,已經修改過來了
[root@localhost bin]# hostname -i192.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端口號。
上述內容就是如何在Java虛擬機中利用jvisualvm工具實現遠程監控tomcat的內存,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。