Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)
我們經(jīng)常需要對我們的開發(fā)的軟件做各種測試, 軟件對系統(tǒng)資源的使用情況更是不可少, 目前有多個監(jiān)控工具, 相比JProfiler對系統(tǒng)資源尤其是內(nèi)存的消耗是非常龐大,JDK1.6開始自帶的VisualVM就是不錯的監(jiān)控工具.
這個工具就在JAVA_HOME\bin\目錄下的jvisualvm.exe, 雙擊這個文件就能看到一個比較直觀的界面
從左邊Applications樹中可以知道,不光可以監(jiān)控本地JVM運(yùn)行情況, 還可以監(jiān)控遠(yuǎn)程機(jī)器上的JVM運(yùn)行情況.
本地監(jiān)控:只要打開某個JAVA程序就會自動的加入到本地監(jiān)控中.
因為本地監(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這個文件到當(dāng)前目錄, 并改名為jmxremote.password
c.打開jmxremote.password文件,去掉 # monitorRole QED 和 # controlRole R&D 這兩行前面的注釋符號
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.直接反鍵點擊Remote,選擇Add Remote Host...
b.在彈出的界面中輸入遠(yuǎn)程機(jī)器的IP地址(192.168.0.237),這個IP地址會加入到Remote節(jié)點下.
c.反鍵點擊這個IP地址,選擇Add JMX Connection, 在彈出的界面中輸入剛配置的端口號(18999), 這個連接會加入到該IP節(jié)點下.
d.反鍵點擊這個連接,選擇Open.
此時就可以看到監(jiān)控的界面, 從界面上我們可以看到CPU信息, 內(nèi)存信息, 統(tǒng)計加載類數(shù)量,線程信息.
以上這篇Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決JAVA遍歷List集合,刪除數(shù)據(jù)時出現(xiàn)的問題
這篇文章主要介紹了解決JAVA遍歷List集合時,刪除數(shù)據(jù)出現(xiàn)的問題,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07SpringBoot2.x實現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴
這篇文章主要介紹了SpringBoot2.x實現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解
這篇文章主要介紹了jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07利用SpringBoot和LiteFlow解鎖復(fù)雜流程
隨著業(yè)務(wù)的復(fù)雜化,企業(yè)需要更加高效、便捷地管理自己的業(yè)務(wù)流程,這就需要借助一些流程引擎實現(xiàn),今天,我們就來介紹一種基于Java語言開發(fā)的輕量級工作流引擎——LiteFlow,以及如何在Spring Boot框架中集成它,從而提高企業(yè)的工作效率和開發(fā)效率2023-06-06淺談Mybatis中resultType為hashmap的情況
這篇文章主要介紹了淺談Mybatis中resultType為hashmap的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12springboot?@Validated的概念及示例實戰(zhàn)
這篇文章主要介紹了springboot?@Validated的概念以及實戰(zhàn),使用?@Validated?注解,Spring?Boot?應(yīng)用可以有效地實現(xiàn)輸入驗證,提高數(shù)據(jù)的準(zhǔn)確性和應(yīng)用的安全性,本文結(jié)合實例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-04-04