JVM监控及诊断工具之GUI的详解

JVM监控及诊断工具之GUI的详解

  1. JConsole的使用
    (1)启动
    在jdk的bin目录下,启动jconsole.exe命令即可或者在cmd命令窗口输入jconsole
    (2)连接方式
    ① Local:使用JConsole连接本地正在运行的JVM,并且执行程序的和运行JConsole的需要是同一个用户,JConsole使用文件系统的授权是通过RMI连接器连接到平台的MBean服务器上
    ② Remote:使用下面的URL通过RMI连接器连接到一个JMX代理,service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi,JConsole为建立连接,需要在环境变量中设置mx.remote.credentials来指定用户名和密码,从而进行授权
    ③ Advanced:使用一个特殊的URL连接JMX代理,一般情况使用自己定制的连接器而不是RMI提供的连接器来连接,或者是一个使用JDK1.4实现了JMX和JMX Remote的应用
  2. Visual VM
    (1)启动
    在jdk的bin目录下启动jvisualvm.exe即可
    (2)安装插件VisualVM GC
    启动jvisualvm.exe后点击工具中的插件,再点击可用插件,若没有可用插件列表,可以按以下步骤进行操作安装

检查最新版本出现以下问题,需要修改设置中的url
在这里插入图片描述
在这里插入图片描述
在修改url之前,先到https://visualvm.github.io/pluginscenters.html这个网址上找到与你jdk版本相对应的url
在这里插入图片描述
修改好后,你会发现可用插件中有插件了。
在这里插入图片描述
之后选择对于插件进行安装即可
在这里插入图片描述
(3)连接方式
① 本地连接:监控本地java进程的CPU,类和线程
② 远程连接
连接步骤:
① 确定远程服务器的ip地址
② 添加JMX,通过JMX技术具体监控远端服务器哪个java进程
③ 修改bin/catalina.sh文件,连接远程的tomcat
④ 在…/conf中添加jmxremote.access和jmxremote.password文件
⑤ 将服务器地址修改为公网ip地址
⑥ 设置阿里云安全策略和防火墙策略
⑦ 启动tomc,查看tomcat启动日志和端口监听
⑧ JMX中输入端口号,用户名,密码登录
(4)主要功能介绍
① 生成/读取堆内存快照
② 查看JVM参数和系统属性
③ 查看运行中的虚拟机进程
④ 生成/读取线程快照
⑤ 程序资源的实时监控
⑥ 其他功能
JMX代理连接,远程环境监控,CPU分析和内存分析
3. MAT
(1)获取dump文件
① 方式一:可以通过jmap命令生成
② 方式二:通过配置JVM参数:-XX:+HeapDumpOnOutOfMemoryError,-XX:HeapDumpPath指定生成dump地址
③ 方式三:使用VisualVM导出dump文件
④ 使用MAT打开dump文件
(2)分析dump文件
① histogram:展示各个类的实例数目以及这些实例shallowheap或retainedheap的总和
② thread overview:查看系统中的java线程,查看局部变量的信息
③ 获得对象引用的关系:with outgoing references和with incoming references
④ 浅堆和深堆
浅堆:指一个对象所消耗的内存,在32位系统中,一个对象引用会占据4个字节,一个int类型占据4个字节,long类型占据8个字节,每个对象头占据8个字节,对象的大小会向8字节对齐
保留集:对象A的保留集指当对象A被垃圾回收后,可以被释放的所有对象结合,包括对象A本身,通俗的说就是仅仅被对象A所持有的对象的集合
深堆:指对象的保留集中所有的对象的浅堆大小之和
⑤ 支配树
体现对象实例间的支配关系。在对象引用图中,所有指向对象B的路径都经过对象A,则认为对象A支配对象B,如果对象A是离对象B最近的一个支配对象,则认为对象A是对象B的直接支配
如图所示:右边是对于左边对象的支配树图
在这里插入图片描述
4. JProfiler
(1)主要功能
① 方法调用:对方法调用的分析可以帮助你了解应用程序正在做什么,并找到提高其他性能的方法
② 内存分配:通过分析堆上对象,引用链和垃圾收集能帮你修复内存泄漏问题,优化内存使用
③ 线程和锁:JProfile提供多种针对线程和锁的分析视图助你发现多线程问题
④ 高级子系统:许多性能问题发生在更高的语义级别上
(2)具体使用
① 数据采集发生:Instrumentation重构模式和Samping抽样模式
② 遥感监测:Telemetries
③ 内存视图:Live memory
④ 堆遍历:heap Walker

⑤ CPU视图:cpu views
⑥ 线程视图:threads
⑦ 监视器&锁:Monitors$locks
5. Arthas-服务上线后进行监控
(1)官方文档
Arthas官方文档
(2)Linux安装和使用
① 安装

wget https://arthas.gitee.io/arthas-boot.jar

② 启动

java -jar arthas-boot.jar
或者
java -jar arthas-boot.jar [PID]

③ 查看日志

cat -/logs/arthas/arthas.log

④ 查看帮助

java -jar arthas-boot.jar -h

⑤ 退出

quit\exit
或者
stop\shutdown,关闭arthas服务端并退出所有客户端

(3)指令的使用
可以参考官方文档
指令的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值