Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)
我們經(jīng)常需要對(duì)我們的開發(fā)的軟件做各種測(cè)試, 軟件對(duì)系統(tǒng)資源的使用情況更是不可少, 目前有多個(gè)監(jiān)控工具, 相比JProfiler對(duì)系統(tǒng)資源尤其是內(nèi)存的消耗是非常龐大,JDK1.6開始自帶的VisualVM就是不錯(cuò)的監(jiān)控工具.
這個(gè)工具就在JAVA_HOME\bin\目錄下的jvisualvm.exe, 雙擊這個(gè)文件就能看到一個(gè)比較直觀的界面

從左邊Applications樹中可以知道,不光可以監(jiān)控本地JVM運(yùn)行情況, 還可以監(jiān)控遠(yuǎn)程機(jī)器上的JVM運(yùn)行情況.
本地監(jiān)控:只要打開某個(gè)JAVA程序就會(huì)自動(dòng)的加入到本地監(jiān)控中.
因?yàn)楸镜乇O(jiān)控?zé)o需配置, 所以這里主要介紹監(jiān)控遠(yuǎn)程JVM
要進(jìn)行遠(yuǎn)程監(jiān)控, 本機(jī)的VisualVM就必須和遠(yuǎn)程的JVM要進(jìn)行通信, Visualvm目前支持兩種remote connection方式.
分別是jstatd和JMX方式: 這里我主要介紹的是通過JMX方式.
通過JMX連接遠(yuǎn)程機(jī)器, 需要經(jīng)過下面的配置:
1. 修改遠(yuǎn)程機(jī)器JDK配置文件 (我這里遠(yuǎn)程機(jī)器是linux).
a.進(jìn)入JAVA_HOME\jre\lib\management\目錄
b.拷貝jmxremote.password.template這個(gè)文件到當(dāng)前目錄, 并改名為jmxremote.password
c.打開jmxremote.password文件,去掉 # monitorRole QED 和 # controlRole R&D 這兩行前面的注釋符號(hào)
2. 修改遠(yuǎn)程機(jī)器上需要被監(jiān)控的程序的配置文件 (我這里是監(jiān)控Tomcat容器內(nèi)部署的應(yīng)用).
a.進(jìn)入TOMCAT_HOME\bin目錄
b.打開catalina.sh文件,加入如下信息:
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.237 -Dcom.sun.management.jmxremote.port=18999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
c.重啟Tomcat服務(wù).
3. 客戶端VisualVM配置 (我客戶端用的是WinXP).
a.直接反鍵點(diǎn)擊Remote,選擇Add Remote Host...
b.在彈出的界面中輸入遠(yuǎn)程機(jī)器的IP地址(192.168.0.237),這個(gè)IP地址會(huì)加入到Remote節(jié)點(diǎn)下.
c.反鍵點(diǎn)擊這個(gè)IP地址,選擇Add JMX Connection, 在彈出的界面中輸入剛配置的端口號(hào)(18999), 這個(gè)連接會(huì)加入到該IP節(jié)點(diǎn)下.
d.反鍵點(diǎn)擊這個(gè)連接,選擇Open.
此時(shí)就可以看到監(jiān)控的界面, 從界面上我們可以看到CPU信息, 內(nèi)存信息, 統(tǒng)計(jì)加載類數(shù)量,線程信息.
以上這篇Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Intellij Idea插件開發(fā)之創(chuàng)建項(xiàng)目層級(jí)的右鍵菜單
這篇文章主要介紹了Intellij Idea插件開發(fā)之創(chuàng)建項(xiàng)目層級(jí)的右鍵菜單,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
java源碼解析之String類的compareTo(String otherString)方法
這篇文章主要給大家介紹了關(guān)于java源碼解析之String類的compareTo(String otherString)方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
InputStreamReader 和FileReader的區(qū)別及InputStream和Reader的區(qū)別
這篇文章主要介紹了InputStreamReader 和FileReader的區(qū)別及InputStream和Reader的區(qū)別的相關(guān)資料,需要的朋友可以參考下2015-12-12
Java實(shí)現(xiàn)FIFO功能的完整代碼實(shí)踐
在軟件開發(fā)中,隊(duì)列(Queue)是一種常見的數(shù)據(jù)結(jié)構(gòu),其特點(diǎn)是先進(jìn)先出(FIFO,First In First Out),FIFO 隊(duì)列在生產(chǎn)者-消費(fèi)者模型、任務(wù)調(diào)度、緩沖區(qū)管理等場(chǎng)景中具有廣泛的應(yīng)用,本文給大家介紹了Java實(shí)現(xiàn)FIFO功能的完整代碼實(shí)踐,需要的朋友可以參考下2025-03-03
一文學(xué)透ApplicationContext繼承接口功能及與BeanFactory區(qū)別
這篇文章主要為大家介紹了ApplicationContext繼承接口功能及與BeanFactory區(qū)別示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
使用java swing實(shí)現(xiàn)qq登錄界面示例分享
這篇文章主要介紹了使用java swing實(shí)現(xiàn)qq登錄界面示例,需要的朋友可以參考下2014-04-04
使用注解@Recover優(yōu)化丑陋的循環(huán)詳解
我們知道在實(shí)現(xiàn)一個(gè)功能的時(shí)候是可以使用不同的代碼來實(shí)現(xiàn)的,那么相應(yīng)的不同實(shí)現(xiàn)方法的性能肯定也是有差別的,下面這篇文章主要給大家介紹了關(guān)于使用注解@Recover優(yōu)化丑陋的循環(huán)的相關(guān)資料,需要的朋友可以參考下2022-04-04

