JVM工具相关

3 篇文章 0 订阅
2 篇文章 0 订阅

常用命令:

 

这里主要介绍如下几个工具:

分析工具可使用MemoryAnalyzer

1、jps:查看本机java进程信息

2、jstat:性能监控工具

3、jmap:打印内存映射信息,制作 堆dump文件

4、jhat:内存分析工具,用于解析堆dump文件并以适合人阅读的方式展示出来

5、jconsole:简易的JVM可视化工具(需要开启jmx)

6、jvisualvm:功能更强大的JVM可视化工具(需要开启jmx)

7、jstack:打印线程的信息,制作 线程dump文件

8.新的在线工具有arthas,官方使用文档

进阶使用 — Arthas 3.5.5 文档

9.jcmd

查看jcmd帮助:jcmd pid help

学习视频:

一个小时彻底搞懂垃圾收集器G1&ZGC详解每秒几十万并发JVM如何优化

Java线程Dump分析工具--jstack

jmap

  1)jmap -heap pid:输出堆内存设置和使用情况(JDK11使用jhsdb jmap --heap --pid pid)

这个不错,显示友好!

  2)jmap -histo pid:输出heap的直方图,包括类名,对象数量,对象占用大小

这个不错,可以及时看到类的实例个数!!!在full gc dump不出来的时候,用这个可以看下!

  3)jmap -histo:live pid:同上,只输出存活对象信息

  4)jmap -clstats pid:输出加载类信息

  5)jmap -help:jmap命令帮助信息

       6)jmap -dump:live,format=b,file=heapdump pid:将内存使用的详细情况输出到文件名为heapdump

     可使用jhat命令查看该文件:jhat -port 4000 文件名 ,在浏览器中访问http:localhost:4000/

总结:

该命令适用的场景是程序内存不足或者GC频繁,这时候很可能是内存泄漏。通过用以上命令查看堆使用情况、大量对象被持续引用等情况。

jstat

Java虚拟机统计工具,全称“Java Virtual Machine statistics monitoring tool”。可以用于监视JVM各种堆和非堆内存大小和使用量

可参考:JVM学习之jstat使用方法

几个好用的选项:-gccapacity -gcutil(注意-gcutil显示的是百分比

  0)jstat -gccause pid:输出full gc的原因!!!  

        1)jstat -class pid:输出加载类的数量及所占空间信息。

  2)jstat -gc pid:输出gc信息,包括gc次数和时间,内存使用状况(可带时间和显示条目参数)

         jstat -gc PID 3000 20, 3秒一次,20次(单位KB, 下图是G1)

 jstat -gcutil PID 显示的是百分比

S0C:年轻代第一个survivor的容量(字节)

S1C:年轻代第二个survivor的容量(字节)

S0U:年轻代第一个survivor已使用的容量(字节)

S1U:年轻代第二个survivor已使用的容量(字节)

EC:年轻代中Eden的空间(字节)

EU:年代代中Eden已使用的空间(字节)

OC:老年代的容量(字节)

OU:老年代中已使用的空间(字节)

PC:永久代的容量

PU:永久代已使用的容量

YGC:从应用程序启动到采样时年轻代中GC的次数

YGCT:从应用程序启动到采样时年轻代中GC所使用的时间(单位:S)

FGC:从应用程序启动到采样时老年代中GC(FULL GC)的次数

FGCT:从应用程序启动到采样时老年代中GC所使用的时间(单位:S)

jinfo

pid,查看指定pid的所有JVM信息

  1)jinfo -flags pid 查询虚拟机运行参数信息。

  2)jinfo -flag name pid,查询具体参数信息,如jinfo -flag UseSerialGC 42324,查看是否启用UseSerialGC

Jconsole

JConsole连接远程服务器方法

一些参考案例:

一次Spring Boot假死诊断。。。_mifffy_java的博客-CSDN博客_springboot 假死

JDK8记FullGC时候Metaspace内存不会被垃圾回收(遇到了一次Metaspace设置过小,造成总是full gc而没有响应的情况!这个案例写到了)

相关知识:

JVM -- FULL GC触发条件总结以及解决策略

Shallow Heap 和 Retained Heap的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值