JAVA(JDK)內存溢出分析工具(VISUALVM)


標簽: 操作類

 
 

 

 

前言

VisualVM:

它是一個以監控、顯示本地或者遠程服務器 JVM工作情況,進行性能調優的工具。可以實現對JVM內存各個子池、CPU、垃圾收集器等方面進行監控,從而發現程序代碼中潛在的泄露點和配置問題。

問題淺出

我們在寫業務時有時候可能會出現一些莫名其妙的問題,比如內存溢出,換而言之就是內存實際大小不滿足於當前執行的內存大小,從而造成某些東西不工作導致崩潰

如何使用?

jdk一搬都攜帶該工具,位置在jdk安裝目錄的bin目錄里面
例:

 

 雙擊打開之后安裝GC插件

 

 

緊接着打包你要進行監控的jar

啟動jar時務必設置好JVM參數以及OOM內存溢出日志輸出目錄

  1. 打包用於監控的jar包

 

 

  1. 用jvm參數以及oom參數啟動

說明(我這里是測試環境僅供參考)>
-Xms100m 啟動時占用內存為100
-Xmx100m 最大支持內存占用為100
-XX:HeapDumpPath=D:\logs 如果出現內存溢出即輸出日志到logs目錄下,文件名默認也行,你自己設置也可以
-Dcom.sun.management.jmxremote.port=9999 模擬該jar包監控時遠程調用接口,這里隨便寫一個不占用的端口即可
-Djava.rmi.server.hostname=192.168.0.108 當前主機IP
其它參數含義自行百度

java -Dserver.port=5555 
-Xms100m  
-Xmx100m 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=D:\logs 
-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=9999 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Djava.rmi.server.hostname=192.168.0.108 
-jar zuulServer.jar

啟動完成之后圖形界面查看如下

 

 模擬內存溢出接口

 

 訪問該接口輸出dump日志文件在D盤logs目錄下
如圖所示

 

 

 使用Visual-GC打開該文件分析
流程:選擇監控的jar點擊裝入然后選擇目錄篩選hprof選擇日志文件打開

 

 打開之后如下圖所示

 

 點擊進入錯誤線程查看溢出問題
此處查看得知68行出的問題,由此可查出問題所在

 

 

收尾階段

這個我也是剛剛使用,太多的東西不太熟悉,先總結一篇以后慢慢修正,先入門再說咯!!!


免責聲明!

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



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