一、java jvisualvm介紹
1、jvisualvm用途
VisualVM,能夠監控線程,內存情況,查看方法的CPU時間和內存中的對 象,已被GC的對象,反向查看分配的堆棧(如100個String對象分別由哪幾個對象分配出來的).
監控內存泄露,跟蹤垃圾回收,執行時內存、cpu分析,線程分析...
內存信息
線程信息
Dump堆(本地進程)
Dump線程(本地進程)
打開堆Dump。堆Dump可以用jmap來生成。
打開線程Dump
生成應用快照(包含內存信息、線程信息等等)
性能分析。 :idea: CPU分析(各個方法調用時間,檢查哪些方法耗時多),內存分析(各類對象占用的內存,檢查哪些類占用內存多)
2、jvisualvm安裝
jvisualvm已經被集成在jdk1.6以上的版本中,正常安裝完jdk后,至jdk的bin目錄下,運行jvisualvm.exe即可

二、Visual GC插件下載與安裝
1、Visual GC插件下載
1)訪問visualvm插件中心
https://visualvm.github.io/pluginscenters.html
2)選擇對應的JDK版本和插件進行下載
例:本次使用的JDK版本是1.8.0_101,下載的插件是Visual GC
步驟1:進入對應的JDK版本插件地址

步驟2:在對應的JDK版本鏈接下找到對應的插件Visual GC

下載的文件如下:

2、Visual GC插件安裝
1)啟動VisualVM
啟動路徑 D:\Program Files\Java\jdk1.8.0_101\bin\jvisualvm.exe
2)安裝Visual GC
VisualVM界面,工具》插件》已下載》添加插件,選擇已下載的插件,然后點擊安裝,直到安裝完成。

3)重啟VisualVM
重啟后在監控頁面中就可以看到Visual GC界面

三、遠程監控中間件tomcat
1、本機安裝JDK
2、服務器tomcat修改參數重啟
監控服務器上的tomcat
tomcat的配置文件catalina.sh中增加(與jconsole配置一樣):
JAVA_OPTS="-Djava.rmi.server.hostname=192.168.58.164
-Dcom.sun.management.jmxremote.port=9998
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
參數說明:
指定了JMX啟動的代理端口,這個端口就是visualvm要連接的端口(9998端口不能被別的程序使用netstat -an|gerp 9998)
Dcom.sun.management.jmxremote.port=9998
指定了JMX是否啟用ssl
Dcom.sun.management.jmxremote.authenticate=false
指定了JMX是否啟用鑒權(需要用戶名,密碼鑒權)
Dcom.sun.management.jmxremote.authenticate=false
指定了服務器主機名
Djava.rmi.server.hostname=192.168.58.164
