JVM系列(3)- Java VisualVM使用



###前言 Java VisualVM是jdk自帶一款工具,可以十分友好的監控java進程相關的應用服務及中間件。

工具位置

jdk的bin目錄下,找到jvisualvm.exe,雙擊打開即可。

功能介紹

1、抽樣器和profiler,這兩個差不多,用其中一個即可。


比如抽樣器,點擊CPU,就可以看到各個類以及方法執行的時間,可以監控哪個類的方法執行時間較長,一眼就能定位到具體的異常方法。


點擊內存,也一樣,很直觀的就能找到哪個位置可能存在內存泄漏的情況。



2、安裝visualGC插件
直接在java visualVM上安裝是安裝不上的,要去官網下載插件。
地址:https://visualvm.github.io/pluginscenters.html
java -version查一下java版本,然后根據版本下載對應的插件。

然后點擊工具-插件,將地址改為正確的地址:

然后就可以安裝插件了,勾選可用插件中的這兩個:BTrace Workbench和Visual GC

點擊安裝即可。
裝完后:


3、JVisualVM監控tomcat(在第2點的基礎上)

1)、配置要監控的遠程tomcat中的catalina.sh文件,加入以下部分:
找到JAVA_OPTS,在上方加入:(主要是端口port和主機hostname,記住端口不要和服務器上已經占用的發生沖突,如果是雲服務器要開放端口。)

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=39.108.70.86"

保存,重啟。

2)、遠程-右鍵,添加主機:

添加jmx連接:

然后就和監控本地一樣了!


總結:

個人經過測試,監控內網服務器沒問題,但是阿里雲服務器遠程連接會報錯:【無法使用 service:jmx:rmi:///jndi/rmi:///jmxrmi 連接到9004】,這是因為雲服務器自己的安全策略阻擋了遠程監控,所以VisualVM最好的使用場景是遠程監控局域網內的服務器。



免責聲明!

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



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