【官方文檔】:Using JConsole
1. 簡介
JConsole是一個內置Java性能分析器,可以從命令行或在GUI shell中運行。您可以輕松地使用JConsole(或者,它更高端的“近親” VisualVM)來監控Java應用程序性能和跟蹤Java中的代碼。
JConsole 工具以 java.lang.management API 為基礎進行構建。JConsole 將連接到運行在同一個工作站或遠程工作站上的應用程序。這些應用程序必須配置為允許訪問。
JConsole 連接到 Java 應用程序之后,會報告該應用程序的相關信息。詳細信息包括內存使用情況、正在運行的線程和已裝入類。該數據將幫助您監控應用程序和 JVM 的行為。該信息有助於了解性能問題、內存使用問題、掛起或死鎖。
2. 基本配置
2.1 JVM啟動參數配置
-Djava.rmi.server.hostname=127.0.0.1
配置的主機名信息,jconsole 遠程連接時需要輸入主機名
-Dcom.sun.management.jmxremote
開始 jmxremote 配置
-Dcom.sun.management.jmxremote.port=8899
jconsole 連接的端口
-Dcom.sun.management.jmxremote.authenticate=false
是否認證信任憑證
-Dcom.sun.management.jmxremote.ssl=false
是否啟用SSL
2.2 信任憑證配置
如果設置了信任憑證校驗,則需要使用指定的用戶及密碼遠程連接。
配置文件在 jre/lib/management 目錄下:
2.2.1 jmxremote.access
定義遠程連接用戶的操作權限
2.2.2 jmxremote.password
定義遠程連接用戶的密碼信息(明文存儲)
3. 本地連接
3.1 啟動 jconsole
在JDK的 bin 目錄下啟動 jconsole.exe ,界面如下:
jconsole會顯示本地Java虛擬機上運行的Java程序
3.2 Windows下查詢程序的pid
根據程序監聽的端口號查詢對應的 PID
netstat -ano | findStr 9527
3.3 連接程序
界面選擇 pid 為 15160 的程序進行連接,連接成功后如下所示:
4. 遠程連接
遠程連接不知道是環境問題,還是別的原因,死活連不上,最后用 jvisualvm 連接成功。
中間參考了一下幾篇文章,還算干貨,大家可以參考一下:
【參考文章】:JConsole遠程連接配置
【參考文章】:windows下如何正確使用Jconsole遠程連接linux主機上的JVM
【參考文章】:JVM監測分析JConsole
5.jvisualvm
配置基本和 jconsole 一樣;