JVM系列——虚拟机监控、故障处理工具

第四章 虚拟机性能监控、故障处理工具

1、基础故障处理工具

jps:虚拟机进程状况工具

可以列出正在运行的虚拟机进程, 并显示虚拟机执行主类( Main Class, main()函数所在的类) 名称以及这些进程的本地虚拟机唯一
ID( LVMID, Local Virtual Machine Identifier) 。

命令格式:

jps [ options ] [ hostid ]
eg: jps -l

options:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xxeau0Ls-1646401743302)(C:\Users\崔常菲\AppData\Roaming\Typora\typora-user-images\image-20210919125808662.png)]

jstat: 虚拟机统计信息监视工具

用于监视虚拟机各种运行状态信息的命令行工具

命令格式:

jstat [ option vmid [interval[s|ms] [count]] ] //interval 查询间隔 count查询次数 可省略
eg:jstat -gc

optons:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MYHZcaFD-1646401743303)(C:\Users\崔常菲\AppData\Roaming\Typora\typora-user-images\image-20210919130158612.png)]

jinfo: Java配置信息工具

jinfo( Configuration Info for Java) 的作用是实时查看和调整虚拟机各项参数

命令格式:

jinfo [ option ] pid
eg:jinfo -flag CMSInitiatingOccupancyFraction 1444

VMID与LVMID需要特别说明一下: 如果是本地虚拟机进程, VMID与LVMID是一致的; 如果是远程虚拟机进程, 那VMID的格式应当是:

[protocol:][//]lvmid[@hostname[:port]/servername]

jmap: Java内存映像工具

jmap( Memory Map for Java) 命令用于生成堆转储快照( 一般称为heapdump或dump文件)

命令格式:

jmap [ option ]  vmid

jhat: 虚拟机堆转储快照分析工具

JDK提供jhat( JVM Heap Analysis Tool) 命令与jmap搭配使用, 来分析jmap生成的堆转储快照

jstack: Java堆栈跟踪工具

jstack( Stack Trace for Java) 命令用于生成虚拟机当前时刻的线程快照( 一般称为threaddump或者javacore文件) 。

命令格式:

jstack [ option ] vmid
eg:jstack -l 3500

options:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5BKQHgK5-1646401743303)(C:\Users\崔常菲\AppData\Roaming\Typora\typora-user-images\image-20210919131801538.png)]

2、可视化故障处理工具:

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

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

使用以下命令进入JHSDB的图形化模式, 并使其附加进程PID:

jhsdb hsdb --pid 进程号

JConsole: Java监视与管理控制台

JConsole( Java Monitoring and Management Console) 是一款基于JMX( Java Manage-mentExtensions) 的可视化监视、 管理工具。 它的主要功能是通过JMX的MBean( Managed Bean) 对系统进行信息收集和参数动态调整。

启动:通过JDK/bin目录下的jconsole.exe启动JConsole

内存监控 :“内存”页签的作用相当于可视化的jstat命令, 用于监视被收集器管理的虚拟机内存(被收集器接管理的Java堆和被间接管理的方法区) 的变化趋势 。

线程监控 :“线程”页签的功能就相当于可视化的jstack命令了, 遇到线程停顿的时候可以使用这个页签的功能进行分析。

VisualVM: 多合-故障处理工具

生成、 浏览堆转储快照 :·在“应用程序”窗口中右键单击应用程序节点, 然后选择“堆Dump”。

在“应用程序”窗口中双击应用程序节点以打开应用程序标签, 然后在“监视”标签中单击“堆Dump”。

分析程序性能 :Profiler页签中, VisualVM提供了程序运行期间方法级的处理器执行时间分析以及内存分析 。(一般不在生产环境使用这项功能 )

BTrace动态日志跟踪 :BTrace的作用是在不中断目标程序运行的前提下, 通过HotSpot虚拟机的Instrument功能动态加入原本并不存在的调试
代码。

Java Mission Control: 可持续在线的监控工具 (JMC)

在启动飞行记录时, 可以进行记录时间、 垃圾收集器、 编译器、 方法采样、 线程记录、 异常记录、 网络和文件I/O、 事件记录等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值