JVM调优分析工具和命令

常见的调优命令

jps,JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。 jps是用来查看JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等
jstat,JVM statistics Monitoring是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟
机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
jmap,JVM Memory Map命令用于生成heap dump文件 。用于生成 Java 进程的内存快照,以便分析堆内存使用情况、对象实例分布等信息。,以便分析线程的状态和堆栈信息
jhat,JVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内
置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看 ,虚拟机堆转储快照分析工具
jstack,用于生成java虚拟机当前时刻的线程快照。 堆栈跟踪工具 线,程分析-栈信息查看堆栈信息
jinfo,JVM Configuration info 这个命令作用是实时查看和调整虚拟机运行参数,Java 配置信息工具 参数查看及配置用于获取和修改 Java 进程的
jstat:虚拟机进程状况工具 ,性能分析-查看gc情况;
jstatd:启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099;
jcmd(JVM Diagnostic Command):可以执行一系列的诊断命令,比如线程转储、堆转储、GC 相关信息等。
javap:用于反编译 Java 字节码文件,可以查看指定类的字节码信息。

jstack

jstack 是 Java 虚拟机(JVM)提供的命令行工具,用于生成 Java 线程转储(Thread Dump),它展示了 JVM 运行时所有线程的当前状态和堆栈信息。下面是一些常用的方法来查看 jstack 文件:

  1. 命令行查看:打开终端或命令提示符窗口,使用以下命令来执行 jstack 命令并将结果输出到文件中:
    jstack > jstack.txt
    将 替换为正在运行的 Java 进程的进程 ID。这会将 jstack 输出保存到名为 jstack.txt 的文本文件中。
    文本编辑器查看:使用任何文本编辑器打开 jstack.txt 文件。该文件包含线程的堆栈跟踪信息,可以通过搜索特定关键字(如异常名称、线程名称等)来查找感兴趣的信息。
    分析工具查看:除了文本编辑器之外,你还可以使用一些分析工具来可视化和分析 jstack 文件。例如,VisualVM、MAT(Memory Analyzer Tool)和FastThread.io 等工具都可以读取和分析 jstack 文件,以更好地理解线程状态和问题。
    在查看 jstack 文件时,要注意以下几点:
    查找与性能问题有关的线程或异常。
    查看线程的状态、阻塞对象以及堆栈跟踪,以了解线程是否处于正常状态。
    查找可能存在的死锁或资源争用情况。

常用的工具

常用调优工具分为两类,jdk自带监控工具:jconsole和jvisualvm,
第三方有:MAT(Memory
Analyzer Tool)、GChisto。
jconsole,Java Monitoring and Management Console是从java5开始,在JDK中自带的java监
控和管理控制台,用于对JVM中内存,线程和类等的监控
jvisualvm,jdk自带全能工具,可以分析内存快照、线程快照;监控内存变化、GC变化等。
MAT,Memory Analyzer Tool,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的
Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗
GChisto,一款专业分析gc日志的工具
在线gc https://gceasy.io/
使用 fastthread 堆栈定位,http://fastthread.io/
jconsole:用于对 JVM 中的内存、线程和类等进行监控;是基于JAVA Management Extensions (JMX)的实时图形化监测工具,这个工具利用了内建到JVM里面的JMX指令来提供实时的性能和资源的监控,包括了JAVA程序的内存使用,堆和线程信息,类的分配状态和空间使用、检测死锁等;
jvisualvm:JDK 自带的全能分析工具,可以分析:内存快照、线程快照、程序死锁、监控内存的变化、gc 变化等。jvisualvm是jdk1.6以后带上的工具,是升级版的jconsole,且支持插件拓展
alibaba/arthas 阿里巴巴的插件,挺好用的,推荐使用,还可以反编译源码
youkit:一个商业的vm分析工具,可以进行内存,cpu,线程等方面的分析,提供了一些高级功能如内
存泄漏检测,代码热替换等。
profler:一个商业的vm分析工具,可以监视vm中的内存,线程,gc等信息,并提供一些高级功能如
代码分析,内存泄漏检测等。
JVM 内存分析工具 mat
Eclipse Memory Analyzer
https://www.eclipse.org/mat
阿里云 APM 产品,支持 OOM 异常关键字告警
ARMS
https://help.aliyun.com/document_detail/42966.html?spm=a2c4g.11174283.6.685.d69b668cuztvff
阿里 Java 在线诊断工具 Arthas(阿尔萨斯)
alibaba Arthas
https://github.com/alibaba/arthas

MAT工具分析dump文件

https://www.eclipse.org/mat/downloads.php
MAT(Memory Analyzer)
想要深入的进行分析并确定内存泄漏,就要分析 疑似发生内存泄漏时所生成堆存储文件(hprof)。堆存储文件可以使用DDMS或者Memory Monitor来生成,输出的文件格式为hpof,而MAT就是来分析堆存储文件的。
MAT,全称为Memory Analysis Tool,它是Eclipse的插件, 下载地址https://www.eclipse.org/mat/downloads.php。
下载dump文件,使用MAT工具/jhat分析
Mat(Eclipse专门的静态内存分析工具)推荐使用
其它辅助命令
查看gc回收统计情况:jstat -gc pid 1000(每隔ms数) 5(输出次数)
查看内存使用情况:jmap -heap pid
查看内存中对象数据:jmap -histo:live | more

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JVM调优工具命令详解》是一份预习资料,主要介绍了Java虚拟机(JVM)调优过程中使用的一些工具命令。这些工具命令可以帮助开发人员诊断和优化JVM的性能问题。 文中首先介绍了常用的JVM调优工具命令,包括jps、jstat、jinfo、jmap、jhat等。这些命令可以用于查看JVM进程信息、统计JVM内存和线程情况、获取JVM配置参数等。通过使用这些工具命令,开发人员可以快速定位JVM性能瓶颈所在,进行优化。 接下来,文中详细介绍了每个工具命令的使用方法和参数解释。例如,jstat命令可以用于查看JVM内存情况,包括堆内存使用量、垃圾回收情况等。而jmap命令可以用于生成堆内存转储文件,帮助开发人员分析内存泄漏问题。通过掌握这些工具命令的使用,开发人员可以更加高效地进行JVM调优。 此外,文中还介绍了一些实际的调优案例,通过使用这些工具命令来解决实际的JVM性能问题。这些案例包括内存泄漏、线程死锁、CPU占用过高等问题。通过学习这些案例,开发人员可以更好地理解如何利用工具命令来诊断和解决JVM性能问题。 总的来说,《JVM调优工具命令详解》是一份非常实用的预习资料,适合那些需要深入学习JVM性能优化的开发人员。通过学习和掌握这些工具命令,开发人员能够更加高效地进行JVM调优,提升应用程序的性能和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

思静语

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

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

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

打赏作者

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

抵扣说明:

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

余额充值