1. 程式人生 > >JVM 監控工具和調優工具[圖形化]

JVM 監控工具和調優工具[圖形化]

之前有總結過JVM監控和調優的工具JVM 監控工具和調優工具 不過這些都是命令列和設定JVM引數的方式,現在來總結歸納下一些圖形化的工具

JConsole

JConsole 是一個基於JMX 的圖形監控工具,用於連線正在執行的JVM,可以以圖表化的形式顯示各種資料,並可通過遠端連線監視遠端的伺服器VM 情況,此類工具可以較直觀觀察各種變化,但比較耗費資源。

在JDK 1.5之後JConsole 已經成為JDK 自帶監控工具,只需要在命令列狀態下輸入:

jconsole

就可以開啟監控介面

這裡寫圖片描述

可以選擇遠端監控或者本地監控

這裡寫圖片描述

  • 概述選項:監控JVM和一些監控變數的資訊。
  • 記憶體選項:記憶體使用資訊
  • 執行緒選項:執行緒使用資訊
  • 類選項:類呼叫資訊
  • VM摘要:JVM的資訊
  • MBean選項:所有MBean 的資訊MBean 展示了所有以一般形式註冊到JVM 上的MBean 。MBean 允許你獲取所有的平臺資訊,包括那些不能從其他標籤頁獲取到的資訊。注意,其他標籤頁上的一些資訊也在MBean 這裡顯示。另外,你可以使用 MBean 標籤管理你自己的應用的MBean。

從jconsole 中可以不光光監控到記憶體情況,還可以監控例如:執行緒,類,JVM引數等等高階資訊。jconsole 還可以根據記憶體等使用情況手動執行GC 清理,這給我們的程式監控與良好執行帶來了很大的便利。值得注意的是jconsole可以同時監控多個JVM 程序,在jconsole 中可以輕鬆的切換監控介面。

JvisualVm

JDK1.6 中Java 引入了一個新的視覺化的JVM 監控工具:Java VisualVM。
執行VisualVM 非常簡單,只需在命令列狀態下輸入:

jvisualvm  

這裡寫圖片描述

“本地”列表下列出在本機執行的Java 程式的資源佔用情況,如果本地有Java程式在執行的話啟動VisualVM 即可看到相應的程式名,點選程式名開啟相應的資源監控選單,以圖形的形式列出程式所佔用的CPU、Heap、PermGen、類、執行緒的 統計資訊

Jvmstat

圖形版的jstat 需要去官網下載安裝包

使用jvmstat 之前需要配置相應環境變數,環境變數配置如下:

JVMSTAT_HOME:jvmstat安裝目錄  
JVMSTAT_JAVA_HOME:JDK所在目錄,與JAVA_HOME值相同  

配置好兩個環境變數之後就可以執行jvmstat 了,執行命令為:

visualgc pid  
#windows 系統進入bat 目錄後執行該命令  
#linux 系統進入bin 目錄後執行該命令  

這裡寫圖片描述

從jvmstat 中可以清晰的觀察到彙編,載入,垃圾回收消耗的時間與各區域記憶體使用情況,在圖中s0與s1的記憶體使用永遠都是相斥的,即至多隻有一個會在使用。所以jvmstat 只能作為一款基本的圖形監控工具。

jvmstat 作為一款基本的JVM 圖形化監控工具,優點就是簡單易用,我們可以非常直觀的觀察堆記憶體的使用情況,當然僅僅為堆記憶體,所以jvmstat 具有一定的侷限性。

YourKit

YourKit 是一個用於分析Java 與.NET 應用程式的智慧工具,YourKit Java Profiler 已經被IT 專業人士與分析師公認為最好的分析工具。通過YourKit 技術解決方案可以以非常高的的專業水平分析出CPU 與記憶體使用情況。
YourKit Java Profiler 還獲得了Java Developer’s Journal(Java 開發者雜誌)的編輯選擇獎,其功能的強大可見一斑。

YourKit 網站官方:http://www.yourkit.com
YourKit Java Profiler 下載地址:http://www.yourkit.com/download/index.jsp
YourKit Java Profiler 提供了Java 與.NET 兩種語言的支援,並且支援基本所有作業系統,目前最新版本為12.0.6。

開啟之後的介面如下
這裡寫圖片描述

監控介面
這裡寫圖片描述

還可以開啟記憶體管理介面,檢視JVM 中各種記憶體的佔有情況:
這裡寫圖片描述