JVM原理(九):JVM虚拟机工具之可视化故障处理工具

1. JHSDB:基于服务性代理的调试工具

JHSDB是一款基于服务性代理实现的进程外调试工具。

服务性代理是HotSpot虚拟机中一组用于映射Java虚拟机运行信息的、主要基于Java语言实现的API集合。

2. JConsole:Java监视与管理控制台

JConsole是一款基于JMX的可视化监视、管理工具。

主要功能:通过JMX的M Bean (M anaged Bean) 对系统进行信息收集和参数动态调整。JMX是一种开放性的技术,不仅可以用在虚拟机本身的管理上,还可以运行于虚拟机上的软件中,典型的如中间件大多也基于JMX来实现管理与监控。虚拟机对JMX。

2.1. 开启方式


2.2. 内存监控


2.3. 线程监控

可以检测死锁

3. VisualVM:多合-故障处理工具

VisuaIVM ( All-in-One Java Troubleshooting Tool)是功能最强大的运行监视和故障处理程序之一,曾经在很长一段时间内是Oracle官方主力发展的虚拟机故障处理工具。VisualVM还有一个很大的优点:不需要被监视的程序基于特殊Agent去运行,因此它的通用性很强,对应用程序实际性能的影响也较小,使得它可以直接应用在生产环境中。这个优点是JProfiler、YourKit等 工具无法与之媲美的。

功能:

  • 显示虚拟机进程以及进程的配置、环境信息(jps、 jinfo) 。

  • 监视应用程序的处理器、垃圾收集、堆、方法区以及线程的信息(jstat、 jstack) 。

  • dump以及分析堆转储快照(jmap、 jhat )。

  • 方法级的程序运行性能分析,找出被调用最多、运行时间最长的方法。

  • 离线程序快照:收集程序的运行时配置、线程dump、内存dump等信息建立一个快照,可以将快照发送开发者处进行Bug反馈。

  • 其他插件带来的无限可能性。


分析程序性能

使用profile来进行分析。


BTrace

BTrace是一个很神奇的VisualVM插件,它本身也是一个可运行的独立程序。BTrace的作用是在不中断目标程序运行的前提下,通过HotSpot 虚拟机的Instrument功能[4动态加入原本并不存在的调试代码。这项功能对实际生产中的程序很有意义:如当程序出现问题时,排查错误的-些必要信息时(譬如方法参数、返回值等),在开发时并没有打印到日志之中以至于不得不停掉服务时,都可以通 过调试增量来加入日志代码以解决问题。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值