VisualVM工具的使用


一、插件安裝

 

jvisualvm是隨jdk一同發布的jvm診斷工具,通過插件可以擴展很多功能,插件擴展也是jvisualvm的精華所在。
打開該工具,通過菜單“工具”—>“插件”開發以下對話框:
這里寫圖片描述
在可用插件tab中選擇需要安裝的插件,本博文中需要用到兩個插件如上圖中的方框所示。

二、調整IDEA類加載速度

本部分的時間測量用到插件Visual GC。

IDEA在啟動時,由於加載很多的類,占用了較長的時間,其實在加載這些類時,還有很重要的一步就是驗證這些加載的類。平時我們都是在組內開發工程,可以認為這些加載的編譯代碼是可靠的,不需要在加載的視乎再進行字節碼驗證。我們可以通過參數-Xverify:none禁止字節碼驗證,加快IDEA的啟動過程。
這個參數要加載IDEA的配置文件中,一般情況下,配置文件在個人目錄下:
這里寫圖片描述
修改后的配置文件如下:

-Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:MaxJavaStackTraceDepth=-1 -agentlib:yjpagent64=probe_disable=*,disablealloc,disabletracing,onlylocal,disableexceptiontelemetry,delay=10000,sessionname=IntelliJIdea2017.2 -Xverify:none

這些參數也可在jvisualvm的概述面板下看到:
這里寫圖片描述

通過添加參數-Xverify:none配置后,類加載速度提高30s以上。可以通過visual vm插件面板查看:
這里寫圖片描述

根據visual vm中面板的顯示內容,我們還可以調整jvm堆的設置,盡情探索吧~

三:監控遠程的jvm

1.監控遠程的tomcat,就需要在遠程的tomcat進行JMX配置,方法如下:

2、JMX方式
JMX方式是我們監控應用服務器(JBoss)常用的方法,使用JMX監控的功能不支持Visual GC。

我們經常需要對我們的開發的軟件做各種測試, 軟件對系統資源的使用情況更是不可少, 目前有多個監控工具, 相比JProfiler對系統資源尤其是內存的消耗是非常龐大,JDK1.6開始自帶的VisualVM就是不錯的監控工具.
這個工具就在JAVA_HOME\bin\目錄下的jvisualvm.exe, 雙擊這個文件就能看到一個比較直觀的界面

這個工具就在JAVA_HOME\bin\目錄下的jvisualvm.exe, 雙擊這個文件就能看到一個比較直觀的界面

 
從左邊Applications樹中可以知道,不光可以監控本地JVM運行情況, 還可以監控遠程機器上的JVM運行情況.
本地監控:只要打開某個JAVA程序就會自動的加入到本地監控中.

因為本地監控無需配置, 所以這里主要介紹監控遠程JVM
要進行遠程監控, 本機的VisualVM就必須和遠程的JVM要進行通信, Visualvm目前支持兩種remote connection方式.
分別是jstatd和JMX方式: 這里我主要介紹的是通過JMX方式.

通過JMX連接遠程機器, 需要經過下面的配置:
1. 修改遠程機器JDK配置文件 (我這里遠程機器是linux).
   a.進入JAVA_HOME\jre\lib\management\目錄
   b.拷貝jmxremote.password.template這個文件到當前目錄, 並改名為jmxremote.password
     c.打開jmxremote.password文件,去掉 # monitorRole  QED 和 # controlRole  R&D 這兩行前面的注釋符號

2. 修改遠程機器上需要被監控的程序的配置文件 (我這里是監控Tomcat容器內部署的應用).
   a.進入TOMCAT_HOME\bin目錄
     b.打開catalina.sh文件,加入如下信息:
        

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.237
                                                     -Dcom.sun.management.jmxremote.port=18999
                                                     -Dcom.sun.management.jmxremote.ssl=false 
                                                     -Dcom.sun.management.jmxremote.authenticate=false"

 


   c.重啟Tomcat服務.

如果是java server,則在腳本中加入 -Dcom.sun.management.jmxremote.port=10004 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.136.21 即可。


3. 客戶端VisualVM配置 (我客戶端用的是WinXP).
     a.直接反鍵點擊Remote,選擇Add Remote Host...
     b.在彈出的界面中輸入遠程機器的IP地址(192.168.0.237),這個IP地址會加入到Remote節點下.
     c.反鍵點擊這個IP地址,選擇Add JMX Connection, 在彈出的界面中輸入剛配置的端口號(18999), 這個連接會加入到該IP節點下.
     d.反鍵點擊這個連接,選擇Open.

此時就可以看到監控的界面, 從界面上我們可以看到CPU信息, 內存信息, 統計加載類數量,線程信息.

原文鏈接:https://blog.csdn.net/wzyzzu/article/details/50380511

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM