jvisualvm
jvisualvm可以理解为集成了JDK自带命令的所有功能的一个可视化监控工具,本文介绍本来性能监控方法,远程监控方法传送门远程监控Flink任务性能内存分析超详细篇
本地连接:
以idea为例,在开发调试阶段,查看本地程序的运行情况,通过设置idea的VM参数,通过JMX连接,步骤如图:
1. 找到要运行的函数的Edit Configuations
2. 修改VM options内容(VM即为虚拟机的参数,如连接tomcat时是设置Java opts)
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
3. 建立JMX连接
打开jvisualvm,在java安装目录下双击或者cmd执行jvisualvm命令
4. 开始监控
jconsole
jconsole的启动和jvisualvm基本一致,使用如下:
图中我的程序每分钟读取1次文件,观察其cpu、内存、线程、GC等情况,可以看到,程序在每分钟读取文件时,耗费了大量的堆内存和CPU,通过性能的监控考虑程序是否可以进行优化。
Java GC的监控
在jvisualvm中安装插件,Visual GC 是常常使用的一个功能,可以明显的看到年轻代、老年代的内存变化,以及gc频率、gc的时间等。