一,找到 jdk 路徑下的 jvisualvm.exe
1) VisualVM 可以安裝各種插件
2)其中這幾個比較常用:監控,線程,Visual GC
3) Visual GC 可以清楚的看到,老年代,新生代的內存變化,以及 GC 頻率時間等。很實用的插件。
二,啓動測試程序,進行測試查看 參考博文
1)通過觀察老年代 GC 情況,對比發現哪裏出現問題,進行堆 dump
2)間隔執行 dump
3)通過觀察存儲差異,定位到類,如果突然增多,那麼該對象可能存在內存泄露。
雙擊實例,就可以看到引用情況:
附加:內存泄露是什麼?
JVisualVM 遠程監控 Tomcat
1、修改遠程tomcat的catalina.sh配置文件,在其中增加:
-
JAVA_OPTS="$JAVA_OPTS
-
-Djava.rmi.server.hostname=192.168.122.128
-
-Dcom.sun.management.jmxremote.port=18999
-
-Dcom.sun.management.jmxremote.ssl=false
-
-Dcom.sun.management.jmxremote.authenticate=false
這次配置先不走權限校驗。只是打開jmx端口。
2、打開jvisualvm,右鍵遠程,選擇添加遠程主機:
3、輸入主機的名稱,直接寫ip,如下:
右鍵新建的主機,選擇添加JMX連接,輸入在tomcat中配置的端口即可。
4、雙擊打開。完畢!