一、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