1.jvmstat
jvmstat是圖形版的jstat,由Java 官方提供,目前最新版本爲3.0。html
下載地址:http://www.oracle.com/technetwork/java/jvmstat-142257.htmljava
下載以後解壓縮獲得如下目錄結構:linux
目錄結構比較清晰,很容易就能分辨出各目錄的功能及做用:
bat:windows啓動程序windows
bin:linux啓動程序服務器
docs:相關文檔oracle
etc:linux相關依賴庫eclipse
jars:相關jar包 jvm
使用jvmstat 以前須要配置相應環境變量,環境變量配置以下:jsp
配置好兩個環境變量以後就能夠運行jvmstat 了,運行命令爲:工具
運行後界面自動打開並顯示相應內容,如圖所示:
從jvmstat 中能夠清晰的觀察到彙編,加載,垃圾回收消耗的時間與各區域內存使用狀況,在圖中s0與s1的內存使用永遠都是相斥的,即至多隻有一個會在使用。因此jvmstat 只能做爲一款基本的圖形監控工具。
評論:jvmstat 做爲一款基本的JVM 圖形化監控工具,優勢就是簡單易用,咱們能夠很是直觀的觀察堆內存的使用狀況,固然僅僅爲堆內存,因此jvmstat 具備必定的侷限性。
2.JConsole
JConsole 是一個基於JMX 的圖形監控工具,用於鏈接正在運行的JVM,與前面提到的jvmstat 相似的圖形監控程序,能夠以圖表化的形式顯示各類數據,並可經過遠程鏈接監視遠程的服務器VM 狀況,此類工具能夠較直觀觀察各類變化,但比較耗費資源。
在JDK 1.5以後JConsole 已經成爲JDK 自帶監控工具,只須要在命令行狀態下輸入:
便可開啓監控界面,界面以下:
選擇本地監控仍是遠程監控。
進入監控界面後,會有一些基本選項能夠選擇,例如內存,線程,類等。
選擇內存選項後會顯示堆與非堆內存等使用狀況。
概述選項:監控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 很是簡單,只需在命令行狀態下輸入:
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