利用VisualVM排除應用性能故障 – JAVA編程語言程序開發技術文章

>如果尚未聽說過VisualVm,可以去看看調優你的JavaJ2EE應用性能

>VisualVM是監視您Java/J2EE應用程序性能最好的免費工具之一。如果您嘗試使用MyEclipse的VisualVM,你將不得不從30美元的基本許可證升級!但是,如果按照下文所述的步驟,將解釋如何免費實現該目的。

>沒有多少人用它,但它肯定對你更深入的瞭解您的應用(程序)和定位問題域有所幫助。我們的目標是確定應用的內存異常並查明原因。

>在本文章中,將討論有關VisualVM在Eclipse的配置以及如何監視應用。將啟動一個Web應用並運行visualVM監測該應用。

>1.VisualVM是什麼

>Java管理擴展(JMX)已經自JDK 5.0起成為Java的有機組成部分。JMX使得開發者可獲取JVM的所有相關信息。VisualVM信息是一個可視化工具,與一些JDK的命令行工具相集成,提供強大的分析能力。VisualVM使用JMX和為您提供有關JVM內存、CPU使用率、垃圾回收的詳細信息;也可以專為本地JVM的中對象對 CPU和內存的使用提供建議。

>更多信息詳見VisualVM

2.安裝VisualVM

word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px”>Visualvm與JDK安裝包捆綁(自JDK1.6 update7始)。另外,您可以訪問https://visualvm.dev.java.net/download.html下載VisualVM。

>安裝完畢,進入<安裝目錄>/bin並點擊visualvm.exe,將啟動VisualVM。

>3.配置Tomcat

>由於將要分析Web應用,需配置Tomcat來配合VisualVM運行,要加入一些參數以使用Tomcat的JMX。

>在catalina.bat(或catalina.sh)中修改Java_OPTS(以Tomcat 6.0.16為例):

>-Dcom.sun.management.jmxremote =true

>-Dcom.sun.management.jmxremote.port=909

>-Dcom.sun.management.jmxremote.ssl=false

>-Dcom.sun.management.jmxremote.authenticate=false

>JAVA_OPTS如同下述:

>Set JAVA_OPTS=%JAVA_OPTS%-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=“%CATALINA_BASE%\conf\logging.properties” -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

>4.VisualVM連接Tomcat

>啟動Tomcat以及VisualVM。在VisualVM中,選擇本地(local)或遠程(remote)(方式)。如Tomcat與VisualVM在同一臺計算機上運行,單擊本地(local),並設置參數。

 

>

 

>圖:VisualVM連接到Tomcat

>5.在Eclipse中使用VisualVM

 

>

 

>圖:Eclipse中的VisualVM

>6.問題識別

>VisualVM啟動後,可窺視應用內發生的事情,並識別問題的根源、堆大小和連接池等。

>下圖是用Visual VM監視的應用(程序)信息。

 

>

發佈留言