1. 程式人生 > >JMV監控工具之JConsole

JMV監控工具之JConsole

mark max 描述 sun acc lin 線程數 技術分享 性能監控

一、簡介

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