jvm工具实战使用

简介

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段,这里的数据包括:运行日志、异常堆栈、GC日志、线程快照、堆转储快照(heapdump/hprof文件)等 , 这些jvm工具可以加快我们分析数据、定位解决问题的速度

主要实战使用这些jvm工具, 帮助定位问题。

jps 进程状况工具

JVM Process Status Tool,用于显示系统内所有的 HotSpot 虚拟机进程。

选项作用
-q只输出LVMID, 省略主类的名称
-m输出虚拟机进程启动时传递参数主类main()的参数
-l输出主类的全名,如果进程执行的jar包,输出jar路径
-v输出虚拟机进程启动时jvm参数

jps主要用于查看java进程, 在平常使用的次数最多, 经常使用方式
1:
jps -m
在这里插入图片描述
2:
jps -lvm
在这里插入图片描述

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

JVM Statistics Monitoring Tool,用于收集 HotSpot 各方面的运行数据。

选项作用
-class监视类装载,卸载数量,总空间以及装载所耗费的时间
-gc监视java堆状况,包括Eden区,两个survivor区,老年代,永久代的容量,已用空间,GC时间合计等信息
-gccapacity各个垃圾回收代容量(young,old,perm)和他们相应的空间统计
-gcutil监视内容和-gc基本相同,但输出主要关注已使用的空间占总空间的百分比
-gccuse与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew监视新生代GC状况
-gcnewcapacity新生代与其相应的内存空间的统计
-gcold年老代和永生代行为统计
-gcoldcapacity年老代行为统计
-gcpermcapacity永生代行为统计

主要用来监视统计信息
常用的几种方式
1: jstat -gc 25579 250 20 (注释:25579是进程的id,250 代表250毫秒查询一次,20代表一共查询20次 )
在这里插入图片描述
2: jstat -gcutil pid
在这里插入图片描述
与 -gc 类似,更关注已使用空间占比

查询结果表明: 这台服务器的新生代Eden区(E,表示Eden)使用了45.10%的空间,两个Survivor区(S0,S1, 表示Survivor0,Survivor1)里面都是空的,老年代(O, 表示old)使用了62.75%,程序运行以来共发生Minor GC (YGC, young GC)436次,总耗时2.577秒,
发生Full GC(FGC, 表示Full Gc)0次,Full GC总耗时(FGCT, 表示Full GC Time)0秒, 所有GC总耗时(GCT, 表示GC Time)2.577秒

3: jstat -gccause pid
在这里插入图片描述
与 -gcutil 类似,额外输出上一次 GC 原因

jinfo Java配置信息工具

在这里插入图片描述

jmap 内存映像工具

使用方式
jmap -heap pid

在这里插入图片描述
显示 Java 堆详细信息

jstack java堆栈跟踪工具

使用方式
jstack pid
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里风雪

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值