JVM性能监控和故障处理的常用工具

一、大多数人可能都知道java.exe和javac.exe这两个工具,但却很少了解其实在JDK的bin目录下面初此之外的还有其他命令程序(工具)大有作用。在这里插入图片描述
二、可能比较细心的朋友会注意到这些工具程序的体积都很小,多数大概都在17k左右,这其实并不是JDK的开发团队刻意的把他们制作的如此的精炼或者炫耀技术水平的,而真正的原因其实是这些命令工具大对数都是对jdk/lib/tools.jar类库进行一次的封装而已,主要的功能代码其实是由这个类库来实现的。
在这里插入图片描述
在这里插入图片描述
1:jps :查看虚拟机的进程工具
语法格式:jps
参数:
(1)-q 只输出LVMID,忽略主类信息(LVMID—进程的本地虚拟机的唯一ID,Local Virtual Machine Identifier)
(2)-m 输出vm进程启动是传递给主类main()方法的参数
(3)-l 输出主类的全名,若执行的是jar包,就是路径
(4)-v 输出虚拟机启动的参数
2:jstat:查看虚拟机统计监视的信息的工具
参数:
(1)-class 监视类的信息
(2)-gc 监视堆的状况
(3)-gccapacity 监视堆的各个区域用的最大和最小空间
(4)-gcutil 监视堆空间的使用百分比
(5)-gccause 输出导致上一次GC产生的原因
(6)-gcnew 监视新生代
(7)-gcnewcapacity 监视新生代的使用到的最大和最小的空间
(8)-gcold 监视老年代
(9)-gcoldcapacity 监视老年代的使用到的最大和最小空间
(10)-gcpremcapacity 监视方法区使用到的最大和最小空间
(11)-compiler 监视JIT(即时编译器)编译过的方法、耗时等信息
(12)-printcompilation 输出已经被JIT编译的方法
3:jinfo:查看java的配置信息的工具
4:jmap:查看java的内存映像工具
参数:
(1)-dump 生成堆的转储快照
(2)-finalizerinfo 显示在F- Queue中等待finalizer线程执行的方法对象
(3)-heap 显示对信息
(4)-histo 显示堆中对象的统计信息,包括类,实例数量,合计容量
(5)-permstat 以ClassLoader为口径显示永久代的状态,只在LInux/Solaris下有效
(6)-F 强制生成dump快照,在虚拟机对-dump选项没反应时使用,只在Linux/Solaris有效
5:jhat:虚拟机对转储快照分析的工具,与jmap配合使用,不过在实际当中除非没有其他工具,否则一般很少使用;
6:jstack:查看堆栈信息的工具
参数:
(1)-F 强制输出堆栈线程。当正常的请求不被响应时
(2)-l 除了堆栈外,附加显示关于锁的信息
(3)-m 当调用本地方法时,显示C/C++的堆栈
三、可视化工具
1:jConsole:java的监视与管理控制台工具
(1)、启动JConsole
点击bin/jconsole;他会自动搜索本机运行的所有虚拟机线程,不需要自己使用jps查询,也可以使用远程进程功能来连接远程服务器并进行监控;
在这里插入图片描述

(2)、监控在这里插入图片描述

2:JVisualVM:多合一处理工具
他是随jdk发布功能最强大的运行监视和故障处理的程序,处理运行监视,故障处理外,还提供很多其他的方面的功能,比如性能分析等,他有一个很大的优点:不需要监视的程序基于Agent运行,因此对应用程序的实际性能影响很小,是的他可以在生产环境中使用。注意:在jdk1.8之后不再集成他,需要自己去官网下载:https://visualvm.github.io/
在这里插入图片描述
本文只是简单的大致介绍一下工具的概念和简单使用,想更深入的了解需自己上手操作和摸索探究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值