1.jvmstat
jvmstat是圖形版的jstat,由Java 官方提供,目前最新版本為3.0。
下載地址:http://www.oracle.com/technetwork/java/jvmstat-142257.html
下載之后解壓縮得到以下目錄結構:
目錄結構比較清晰,很容易就能分辨出各目錄的功能及作用:
bat:windows啟動程序
bin:linux啟動程序
docs:相關文檔
etc:linux相關依賴庫
jars:相關jar包
使用jvmstat 之前需要配置相應環境變量,環境變量配置如下:
- JVMSTAT_HOME:jvmstat安裝目錄
- JVMSTAT_JAVA_HOME:JDK所在目錄,與JAVA_HOME值相同
配置好兩個環境變量之后就可以運行jvmstat 了,運行命令為:
- visualgc pid
- #windows 系統進入bat 目錄后運行該命令
- #linux 系統進入bin 目錄后運行該命令
運行后界面自動打開並顯示相應內容,如圖所示:
從jvmstat 中可以清晰的觀察到匯編,加載,垃圾回收消耗的時間與各區域內存使用情況,在圖中s0與s1的內存使用永遠都是相斥的,即至多只有一個會在使用。所以jvmstat 只能作為一款基本的圖形監控工具。
評論:jvmstat 作為一款基本的JVM 圖形化監控工具,優點就是簡單易用,我們可以非常直觀的觀察堆內存的使用情況,當然僅僅為堆內存,所以jvmstat 具有一定的局限性。
2.JConsole
JConsole 是一個基於JMX 的圖形監控工具,用於連接正在運行的JVM,與前面提到的jvmstat 類似的圖形監控程序,可以以圖表化的形式顯示各種數據,並可通過遠程連接監視遠程的服務器VM 情況,此類工具可以較直觀觀察各種變化,但比較耗費資源。
在JDK 1.5之后JConsole 已經成為JDK 自帶監控工具,只需要在命令行狀態下輸入:
- jconsole
即可開啟監控界面,界面如下:
選擇本地監控還是遠程監控。
進入監控界面后,會有一些基本選項可以選擇,例如內存,線程,類等。
選擇內存選項后會顯示堆與非堆內存等使用情況。
概述選項:監控JVM和一些監控變量的信息。
內存選項:內存使用信息
線程選項:線程使用信息
類選項:類調用信息
VM摘要:JVM的信息
MBean選項:所有MBean 的信息MBean 展示了所有以一般形式注冊到JVM 上的MBean 。MBean 允許你獲取所有的平台信息,包括那些不能從其他標簽頁獲取到的信息。注意,其他標簽頁上的一些信息也在MBean 這里顯示。另外,你可以使用 MBean 標簽管理你自己的應用的MBean。
評論:與jvmstat 相比jconsole 就要強大的多了,從jconsole 中可以不光光監控到內存情況,還可以監控例如:線程,類,JVM參數等等高級信息。jconsole 還可以根據內存等使用情況手動執行GC 清理,這給我們的程序監控與良好運行帶來了很大的便利。值得注意的是jconsole可以同時監控多個JVM 進程,在jconsole 中可以輕松的切換監控界面。
3.Java VisualVM
JDK1.6 中Java 引入了一個新的可視化的JVM 監控工具:Java VisualVM。
VisualVM 官方網站:http://visualvm.java.net/
VisualVM 提供在Java 虛擬機上運行的Java 應用程序的詳細信息。在VisualVM 的圖形用戶界面中可以方便、快捷地查看多個Java 應用程序的相關信息。
運行VisualVM 非常簡單,只需在命令行狀態下輸入:
- jvisualvm
VisualVM 便會自動啟動,之后可以看到如下界面:
通過起始頁的提示進入相應的學習文檔頁面,里面有豐富的教程及講解,並且都是中文的!
"本地"列表下列出在本機運行的Java 程序的資源占用情況,如果本地有Java程序在運行的話啟動VisualVM 即可看到相應的程序名,點擊程序名打開相應的資源監控菜單,以圖形的形式列出程序所占用的CPU、Heap、PermGen、類、線程的 統計信息,如圖所示:
概述選項
監控選項
線程選項
"遠程"列表下列出遠程主機上的Java 程序的資源占用情況,但需要在遠程主機上運行jstatd 守護程序
更多的應用及用法可以參照官方文檔:
http://visualvm.java.net/zh_CN/gettingstarted.html?Java_VisualVM
評論:VisualVM 較JConsole 又強大了不少,其中又增加了許多功能與信息,通過VisualVM 可以更加直觀的觀察各種內容的詳細信息。
4.YourKit Java Profiler
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。
下載界面如下:
下載並安裝:
安裝完成后一次運行會提示授權本軟件,對於個人用戶其實可以免費使用YourKit Java Profiler,只需在下載頁面下方填寫相應授權信息即可獲得授權碼,如圖所示:
授權后運行會顯示歡迎頁面,如下所示:
在歡迎頁面可以選擇監控運行中的JVM 進程,安裝eclipse 插件,使用教程等等內容。
勾選"Show all running JVMs"會在下拉列表中顯示所有JVM 進程,選擇其中之一點擊即可進入監控界面: 上圖即為CPU 相關信息的監控界面,從此界面可以觀察CPU 的使用情況等信息。
還可以打開內存管理界面,查看JVM 中各種內存的占有情況:
當然YourKit Java Profiler 的功能絕不僅僅於此,我們還可以參照YourKit Java Profiler 管文檔學習更加高級的監控功能使用,官方教程地址:http://www.yourkit.com/docs/index.jsp
評論:YourKit Java Profiler 可以說異常的強大,你能想到的YourKit Java Profiler 基本都實現了,所以如此之強悍的工具已經不需要我多說什么,甚至你還可以購買它的付費版本,相信絕對會讓小伙伴們驚呆的。本節也只是拋磚引玉的作用,更多更高級的特性需要大家在實踐中自我摸索。
圖形化的監控工具可以使我們在程序運行期間更直觀的查看當前程序的運行情況,從而做出相應判斷,監控程序可以讓工作更加便利,但構建一個穩定高效的系統卻是不斷追求的終極目標。
轉自:http://286.iteye.com/blog/1931574