JVM監控工具之jconsole
一、簡介
JConsole是一個基於JMX的GUI工具,用於連線正在執行的JVM,它是Java自帶的簡單效能監控工具。下面以對tomcat的監控為例,帶領大家熟悉JConsole這個工具。
二、配置
通過JConsole遠端連線伺服器監控JVM,需要在被監控的伺服器上tomcat的啟動檔案catalina.sh中加入以下配置:
JAVA_OPTS="-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.182.130 -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
JMX的相關引數:
引數名 | 型別 | 描述 |
-Dcom.sun.management.jmxremote | 布林 | 是否支援遠端JMX訪問,預設true |
-Dcom.sun.management.jmxremote.port | 數值 | 監聽埠號,方便遠端訪問 |
-Dcom.sun.management.jmxremote.authenticate | 布林 | 是否需要開啟使用者認證,預設開啟 |
-Dcom.sun.management.jmxremote.ssl | 布林 | 是否對連線開啟SSL加密,預設開啟 |
-Dcom.sun.management.jmxremote.access.file | 路徑 | 對訪問使用者的許可權授權的檔案的路徑,預設路徑JRE_HOME/lib/management/jmxremote.access
|
-Dcom.sun.management.jmxremote. password.file | 路徑 | 設定訪問使用者的使用者名稱和密碼,預設路徑JRE_HOME/lib/management/ jmxremote.password
|
三、連線
四、模組介紹
概覽
1、概要介面,主要顯示堆記憶體使用情況、活動執行緒數、載入類數、CPU使用率四個引數的概要,可以通過下拉框來定製顯示的時間範圍
2、假如堆記憶體的影象一直在上升而沒有下降的動作發生,則要懷疑是否記憶體洩露。健壯的專案由於GC的存在,所以它的上升和下降的幅度應該大抵相同
3、CPU的影象規律跟堆記憶體的大致相同
記憶體
1、圖示為被監控程式的詳細記憶體圖
2、點選右上的執行GC按鈕可以通知JVM進行垃圾回收,執行的是Full GC,實質是把垃圾回收佇列的優先順序提高
3、GC 時間顯示了垃圾回收的時間以及回收數,上面的是Young GC執行的時間和次數,下面的是Full GC執行的時間和次數
4、右下角的圖案,Heap記憶體區包括:年輕代Eden Space、存活代Survivor Space和老年代Tenured Gen。Non-Heap記憶體區包括:程式碼快取區Code Cache和持久代Perm Gen;可通過改變下拉框或者直接點選圖形實現切換。
執行緒
1、“峰值”表示最大的執行緒數,這個數值可以通過更改<tomcat_home>/conf/server.xml下的maxThreads來更改
2、點選具體的執行緒之後,我們可以看到它的狀態以及方法棧的詳細呼叫情況
3、點選“檢查死鎖”可以檢測是否有死鎖
類
關注點:類的數量變化
VM概要
1、上面幾欄是關於系統和專案的概要資訊
2、最下面一欄的第一項是tomcat設定的JVM引數,如果你想知道你設定的引數有沒有成功啟用,看這裡就對了
MBean
屬性顯示該bean的詳細細節
操作顯示該bean的所有方法,可以點選該按鈕觸發方法,但個人不推薦這麼做,應該通過程式的統一入口來觸發