Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存
jdk中自帶了很多工具可以用于性能分析,位于jdk的bin目錄下,jvisualvm工具可以以圖形化的方式更加直觀的監(jiān)控本地以及遠(yuǎn)程的java進(jìn)程的內(nèi)存占用,線程狀態(tài)等信息。
一、配置tomcat
在tomcat的catalina.sh文件開(kāi)頭加上如下配置:
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'
各參數(shù)含義:
-Dcom.sun.management.jmxremote:是否支持遠(yuǎn)程JMX訪問(wèn),默認(rèn)true;
-Dcom.sun.management.jmxremote.port:是JMX遠(yuǎn)程監(jiān)控端口號(hào),需要在防火墻開(kāi)放該端口;
-Dcom.sun.management.jmxremote.ssl=false:表示是否對(duì)連接開(kāi)啟SSL加密,默認(rèn)開(kāi)啟;
-Dcom.sun.management.jmxremote.authenticate=false :是否需要開(kāi)啟用戶認(rèn)證,默認(rèn)開(kāi)啟,如果開(kāi)啟需要額外配置授權(quán)文件;
-Djava.rmi.server.hostname=192.168.184.129:遠(yuǎn)程服務(wù)器的主機(jī)名;
-Dcom.sun.management.jmxremote.rmi.port=9999:RMI端口號(hào),JMX在遠(yuǎn)程連接時(shí),會(huì)隨機(jī)開(kāi)啟一個(gè)RMI端口作為連接的數(shù)據(jù)端口,可以和JMX端口號(hào)相同。
二、配置主機(jī)名
使用hostname -i命令查看主機(jī)名是否為外網(wǎng)訪問(wèn)ip192.168.184.129:
[root@localhost bin]# hostname -i127.0.0.1 127.0.0.1
發(fā)現(xiàn)是127.0.0.1,所以需要修改主機(jī)名為192.168.184.129。
(1)修改/etc/sysconfig/network文件
原文件內(nèi)容為:
[root@localhost bin]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=localhost.localdomain
修改HOSTNAME為192.168.184.129,即修改后內(nèi)容為:
[root@localhost bin]# cat /etc/sysconfig/networkNETWORKING=yesHOSTNAME=192.168.184.129
修改后使用service network restart命令重啟網(wǎng)絡(luò)服務(wù)。
(2)修改/etc/hosts文件
原文件內(nèi)容為:
[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的配置,即修改后文件內(nèi)容為:
[root@localhost bin]# cat /etc/hosts192.168.184.129 localhost localhost.localdomain localhost4 localhost4.localdomain4
此時(shí)使用hostname -i命令再次查看主機(jī)名,已經(jīng)修改過(guò)來(lái)了
[root@localhost bin]# hostname -i192.168.184.129
三、配置防火墻
配置防火墻開(kāi)放9999端口,編輯/etc/sysconfig/iptables文件,加入-A INPUT -m state --state NEW -m tcp -p tcp --dport 9999 -j ACCEPT,然后service iptables restart重啟防火墻服務(wù)。
四、配置jvisualvm
啟動(dòng)tomcat后,在windows本地jdk安裝路徑bin目錄下找到j(luò)visualvm.exe,雙擊打開(kāi)后左側(cè)顯示如下:
在“遠(yuǎn)程”上右鍵-->添加遠(yuǎn)程主機(jī)-->填寫(xiě)主機(jī)名:
點(diǎn)擊確定后,遠(yuǎn)程選項(xiàng)下多了一條剛才添加的主機(jī)列表。右鍵-->添加JMX連接,如下圖,填入JMX遠(yuǎn)程連接端口號(hào)9999,并勾選“不要求ssl連接”:
點(diǎn)擊確定后,左側(cè)多了一條pid為6822的遠(yuǎn)程連接,6822是遠(yuǎn)程tomcat的pid:
雙擊該連接,在右側(cè)可以動(dòng)態(tài)查看jvm的概覽信息,監(jiān)控CPU,java堆,元空間,類,線程等數(shù)據(jù):
五、常見(jiàn)問(wèn)題
在添加JMX連接的時(shí)候,經(jīng)常會(huì)出現(xiàn)如下報(bào)錯(cuò):
此時(shí)可以從以下幾個(gè)方向檢查:
(1)檢查tomcat應(yīng)用是否啟動(dòng),或者修改tomcat配置后是否重啟tomcat,確保9999端口處于監(jiān)聽(tīng)狀態(tài),查看命令netstat -nl|grep 9999;
(2)檢查主機(jī)名是否和tomcat中配置的主機(jī)名相同,如果不同則按照第二步修改主機(jī)名;
(3)檢查RMI端口號(hào)端口號(hào)是否在防火墻進(jìn)行了配置,如果配置的RMI端口號(hào)和JMX端口號(hào)不一致,需要在防火墻配置RMI端口號(hào)允許訪問(wèn),如果沒(méi)有配置,則添加-Dcom.sun.management.jmxremote.rmi.port=9999配置RMI端口號(hào)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 詳解瀏覽器的緩存機(jī)制2. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)3. ASP基礎(chǔ)知識(shí)VBScript基本元素講解4. UDDI FAQs5. XML入門(mén)的常見(jiàn)問(wèn)題(四)6. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)7. XML解析錯(cuò)誤:未組織好 的解決辦法8. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實(shí)現(xiàn)代碼9. 利用CSS3新特性創(chuàng)建透明邊框三角10. 使用Spry輕松將XML數(shù)據(jù)顯示到HTML頁(yè)的方法
