主题
JVisualVM可视化监控
使用方法
命令行执行
jvisualvm.exe
安装Visual GC插件
Tools -> Plugins -> Settings -> Add 输入
Visual GC
需要根据JDK版本选择插件地址
重启jvisualVM后
监控远程Tomcat
在catalina.sh中添加
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=45000 -Dcom.sun.management.jmxremote.rmi.port=45000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIpv4Stack=true -Djava.rmi.server.hostname=101.200.39.203"
监控远程的Java进程
shell
nohup java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=45000 -Dcom.sun.management.jmxremote.rmi.port=45000 -un.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIpv4Stack=true -Djava.rmi.server.hostname=101.200.39.203 -jar -Dspring.profiles.active=prod wxserver-1.0.0.jar &
远程不支持 Visual GC
功能清单
JVisualVM 是一个强大的Java性能分析工具,它是由Oracle公司开发的,并作为Java Development Kit (JDK)的一部分包含在内。该工具允许开发者和系统管理员对Java应用程序进行实时监控和故障排查,能够提供以下功能:
进程列表:自动显示本机上运行的所有Java应用程序,也可以通过远程连接监控其他机器上的Java虚拟机(JVM)。
概览信息:展示目标JVM的基本信息,包括启动参数、内存使用情况(堆、元空间、类加载等)、CPU占用率以及垃圾收集器活动等。
线程监控:查看当前所有线程的状态、线程堆栈信息,诊断死锁和其他并发问题。
内存分析:可以实时查看堆内存中对象的数量和大小,执行堆dump并分析内存泄漏,支持查看对象引用链(如查找GC Root)。
CPU分析:监测方法级的CPU使用时间,帮助识别哪些方法消耗了大量CPU资源。
内存快照:通过比较不同的内存快照来定位潜在的内存泄漏问题。
采样和内存分析插件:提供了更深入的分析能力,比如内存分配采样,跟踪对象创建和销毁的过程。
远程监控与数据导出:支持远程监控Java应用,还可以将监控数据导出以供后续分析或共享。
需要注意的是,在某些较新的JDK版本中,可能需要单独下载并安装JVisualVM,因为它不再默认捆绑在JDK中。同时,对于不同JDK版本,JVisualVM的功能可能会有所增减或者界面有所不同。随着Java 9及以后版本的发展,原先一些工具的位置和集成方式发生了变化,可能需要额外配置才能完全利用JVisualVM的功能。