1. 程式人生 > 其它 >JVM監控工具之jconsole

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的所有方法,可以點選該按鈕觸發方法,但個人不推薦這麼做,應該通過程式的統一入口來觸發