JMV監控工具之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、關註點1:點擊右上的執行GC按鈕可以通知JVM進行垃圾回收,執行的是Full GC,實質是把垃圾回收隊列的優先級提高
3、關註點2:GC time顯示了每次回收的時間、算法以及回收數,7.619 seconds是用時,Copy表示垃圾回收機制的復制算法,MarkSweepCompact表示垃圾回收機制的標記-清除-壓縮算法,1426 collections表示回收的數量;
4、右下角的圖案,Heap內存區包括:年輕代Eden Space、存活代Survivor Space和老年代Tenured Gen;Non-Heap內存區包括:代碼緩存區Code Cache和持久代Perm Gen;可通過改變下拉框或者直接點擊圖形實現切換。
線程
1、Peak表示最大的線程數,這個數值可以通過更改<tomcat_home>/conf/server.xml下的maxThreads來更改;
2、點擊具體的Thread之後,我們可以看到它的方法棧的詳細調用情況;
3、點擊Detect Deadlock可以檢測是否有死鎖。
類
關註點:類的數量變化
VM概要
關註點1:上面幾欄是關於系統和項目的概要信息
關註點2:最下面一欄的第一項是tomcat設定的JVM參數,如果你想知道你設置的參數有沒有成功啟用,看這裏就對了
6、MBean
JMV監控工具之JConsole