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)文章
解決JAVA遍歷List集合,刪除數(shù)據(jù)時(shí)出現(xiàn)的問題
這篇文章主要介紹了解決JAVA遍歷List集合時(shí),刪除數(shù)據(jù)出現(xiàn)的問題,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴
這篇文章主要介紹了SpringBoot2.x實(shí)現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解
這篇文章主要介紹了jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07利用SpringBoot和LiteFlow解鎖復(fù)雜流程
隨著業(yè)務(wù)的復(fù)雜化,企業(yè)需要更加高效、便捷地管理自己的業(yè)務(wù)流程,這就需要借助一些流程引擎實(shí)現(xiàn),今天,我們就來介紹一種基于Java語言開發(fā)的輕量級(jí)工作流引擎——LiteFlow,以及如何在Spring Boot框架中集成它,從而提高企業(yè)的工作效率和開發(fā)效率2023-06-06Java實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)帶頭結(jié)點(diǎn)的單鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09淺談Mybatis中resultType為hashmap的情況
這篇文章主要介紹了淺談Mybatis中resultType為hashmap的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12springboot?@Validated的概念及示例實(shí)戰(zhàn)
這篇文章主要介紹了springboot?@Validated的概念以及實(shí)戰(zhàn),使用?@Validated?注解,Spring?Boot?應(yīng)用可以有效地實(shí)現(xiàn)輸入驗(yàn)證,提高數(shù)據(jù)的準(zhǔn)確性和應(yīng)用的安全性,本文結(jié)合實(shí)例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-04-04