【转】使用JDK自带jvisualvm监控tomcat
轉(zhuǎn)載地址:
http://my.oschina.net/kone/blog/157239
jdk自帶有個(gè)jvisualvm工具、該工具是用來(lái)監(jiān)控java運(yùn)行程序的cpu、內(nèi)存、線(xiàn)程等的使用情況。并且使用圖表的方式監(jiān)控java程序、還具有遠(yuǎn)程監(jiān)控能力。不失為一個(gè)用來(lái)監(jiān)控tomcat的好工具。
在jdk目錄下的bin目錄中可以找到j(luò)visualvm.exe文件、直接啟動(dòng)可以看到如下界面:
以上是已經(jīng)連接遠(yuǎn)程的界面。直觀的監(jiān)控界面、更有助于我們分析tomcat的運(yùn)行情況。
下面主要介紹下怎么樣使用本地jvisualvm監(jiān)控遠(yuǎn)程tomcat。
tomcat自帶的監(jiān)控介紹可以參考:
http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
下面是我的配置方法:
?在tomcat/bin目錄下打開(kāi)startup.sh或者startup.bat,在最后一行前面加上,也就是:
view source print?| 1 | exec "$PRGDIR"/"$EXECUTABLE" start "$@" |
前面加上
view source print?| 1 | export CATALINA_OPTS="$CATALINA_OPTS? |
| 1 | -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx? -Dcom.sun.management.jmxremote.port=xxx -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password? -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access" |
參數(shù)說(shuō)明:
view source print?| 1 | -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx 主機(jī)地址,我配置的是外網(wǎng)地址 |
| 1 | -Dcom.sun.management.jmxremote.port=xxx? 端口號(hào)、配置完端口號(hào)之后需要將此端口開(kāi)放出來(lái)? 可以使用命令:iptables -A INPUT -p tcp --d port ?端口號(hào) -j ACCEPT |
| 1 | -Dcom.sun.management.jmxremote.authenticate=true 是否開(kāi)啟認(rèn)證、false的時(shí)候可以不使用密碼訪(fǎng)問(wèn) |
| 1 | -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access? 以上配置是開(kāi)啟認(rèn)證時(shí)使用的access文件和password文件 |
其中jmxremote.access文件的內(nèi)容可以配置為:
view source print?| 1 | username1 readonly |
| 2 | username2 readwrite |
jmxremote.password文件可以配置為:
view source print?| 1 | username1 password1 |
| 2 | username2 password2 |
將以上倆文件放在對(duì)應(yīng)配置目錄tomcat/conf/下
并且將以上倆個(gè)文件訪(fǎng)問(wèn)權(quán)限配置成:
view source print?| 1 | chmod 600 jmx* |
如果沒(méi)有這一步、使用startup啟動(dòng)不了tomcat。
按照上述配置、再使用startup.sh啟動(dòng)tomcat。
接下來(lái)就是使用jvisualvm來(lái)遠(yuǎn)程監(jiān)控tomcat了
右鍵點(diǎn)擊遠(yuǎn)程-添加遠(yuǎn)程主機(jī)-輸入主機(jī)ip地址
添加遠(yuǎn)程主機(jī)之后,點(diǎn)擊遠(yuǎn)程主機(jī)右鍵-添加jmx連接:
彈出登錄框
輸入主機(jī)名:端口號(hào),如果配置了用戶(hù)名和密碼,請(qǐng)輸入用戶(hù)名和密碼。然后點(diǎn)擊確定。
點(diǎn)擊確定之后、在遠(yuǎn)程主機(jī)下會(huì)有一個(gè)jmx連接,打開(kāi)連接,點(diǎn)擊監(jiān)視tab,可以看到如下界面了。
在上圖中可以看到cpu利用率和垃圾回收活動(dòng)(這個(gè)在分析tomcat性能時(shí)也很重要)。然后是堆棧使用情況。下面是類(lèi)的使用情況,最后一個(gè)是線(xiàn)程活動(dòng)情況。
點(diǎn)擊線(xiàn)程tab可以看到:
上圖可以非常清晰的看到線(xiàn)程活動(dòng)情況,那些線(xiàn)程正在執(zhí)行,哪些線(xiàn)程正在等待中,以及執(zhí)行完畢的線(xiàn)程等。
這里可以看到每個(gè)線(xiàn)程的狀態(tài),點(diǎn)擊某個(gè)線(xiàn)程右鍵可以查看該線(xiàn)程的詳細(xì)情況:
使用左上角的線(xiàn)程dump按鈕,還可以看到線(xiàn)程的堆棧情況,這樣就可以具體分析線(xiàn)程是在什么地方進(jìn)入等待,什么地方進(jìn)入休眠,以及什么地方一直處于執(zhí)行狀態(tài)。這也是一個(gè)性能分析利器哦!
以上就是使用jvisualvm的jmx遠(yuǎn)程監(jiān)控tomcat的簡(jiǎn)單配置。
轉(zhuǎn)載于:https://www.cnblogs.com/csshaw/p/3379989.html
總結(jié)
以上是生活随笔為你收集整理的【转】使用JDK自带jvisualvm监控tomcat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 北京银行小白卡年费多少?如何减免?
- 下一篇: 每日英语:Apple Unveils N