JConsole觀察分析Java程序的運行狀態


Java 自帶性能監控工具:監視和管理控制台 jconsole,它可以提供 Java 某個進程的內存、線程、類加載、jvm 概要以及 MBean 等的實時信息。

通過Java SE Development監控JVM:

1)首先修改Tomcat的catalina.sh文件,添加以下內容,完后重啟tomcat應用。

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.authenticate=false   
-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.247.132"

##################################################################
#-Dcom.sun.management.jmxremote.port=12345     //端口隨意起不要與正在運行的沖突
#-Djava.rmi.server.hostname=192.168.247.132    //監控端IP

2)下載並運行Java SE Development,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 然后就會進入分析界面:

性能分析

下面說說如何分析,如何使用這六個標簽

  • 概述: Displays overview information about the Java VM and monitored values.
  • 內存: 顯示內存使用信息
  • 線程: 顯示線程使用信息
  • 類: 顯示類裝載信息
  • *VM摘要:*顯示java VM信息
  • MBeans: 顯示 MBeans.

概述

在圖表上右擊可以保持數據到csv文件,可以使用其他工具來對數據分析。

內存

這個比較有價值,參看堆內存,非堆內存,內存池的狀況總體內存的分配和使用情況以及不同的GC進行垃圾回收的次數和時間。可以手動進行GC查看內存變化。

 

   在分析JAVA內存問題進行調優時候非常有用,你要學習JVM內存模型,之后會發現這里的每個值都具有意義。

 

   GC的算法和參數對性能有顯著的影響,注意垃圾回收次數、時間、以及partial GC和full GC,調整你所使用的不同GC和以及各個GC下的參數,然后在這個視圖下觀察,以得到好的性能。

 

這里貼一下 Java HotSpot VM garbage collector 下generational GC 的各代的划分圖:

 

關於GC,可以參考:http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

 

線程

左下角顯示所有的活動線程(如果線程過多,可以在下面的過濾欄中輸入字符串過濾出你想要觀察的線程)。點擊某個顯示會顯示這個線程的名稱、狀態、阻塞和等待的次數、堆棧的信息。

 

    統計圖顯示的是線程數目的峰值(紅色)和當前活動的線程(藍色)。

 

   另外下面有個按鈕“檢測到死鎖”,有時候會有用處。

VM摘要

MBean

 

另外jvisualvm.exe可以監控多個tomcat進程。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM