[Java基礎]--JVM圖形化監控工具

來源:互聯網
上載者:User

感謝原文連結:http://286.iteye.com/blog/1931574

  前篇文章已經介紹了一些JDK 中內建的監控工具,但是這些工具都是基於文本介面的,無法很直觀的看出程式啟動並執行波動情況,這節就介紹一些圖形化的監控工具供大家更簡單容易的監控使用。

        首先說幾個官方開發的圖形監控工具:

 

        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 之前需要配置相應環境變數,環境變數配置如下: Shell代碼   JVMSTAT_HOME:jvmstat安裝目錄   JVMSTAT_JAVA_HOME:JDK所在目錄,與JAVA_HOME值相同  

 

        配置好兩個環境變數之後就可以運行jvmstat 了,運行命令為: Shell代碼   visualgc pid   #windows 系統進入bat 目錄後運行該命令   #linux 系統進入bin 目錄後運行該命令  

 

        運行後介面自動開啟並顯示相應內容,如圖所示:


 

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


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

 

        2.JConsole

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

       JDK8官方使用說明:https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

       需要添加參數:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=6002 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

        在JDK 1.5之後JConsole 已經成為JDK 內建監控工具,只需要在命令列狀態下輸入: Java代碼   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 非常簡單,只需在命令列狀態下輸入: Java代碼   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 基本都實現了,所以如此之強悍的工具已經不需要我多說什麼,甚至你還可以購買它的付費版本,相信絕對會讓小夥伴們驚呆的。本節也只是拋磚引玉的作用,更多更進階的特性需要大家在實踐中自我摸索。

 

       圖形化的監控工具可以使我們在程式運行期間更直觀的查看當前程式的運行情況,從而做出相應判斷,監控程式可以讓工作更加便利,但構建一個穩定高效的系統卻是不斷追求的終極目標。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.