一、背景介绍
虽然目前市场上有很多成熟的 JVM 可视化监控分析工具,但是所有的工具其实都依赖于 JDK 的接口和底层相关的命令,了解这些命令的使用对于我们在紧急情况下排查 JVM 相关的线上故障,会有更加直观的帮助。
下面我们一起来看看 JVM 常用的命令有哪些。
二、常用命令
常用的监控和故障处理命令,有以下几个:
- jps (
JVM Process Status Tool
):用于显示指定系统内所有的HotSpot
虚拟机进程; - jstat (
JVM statistics Monitoring
):用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据; - jmap (
JVM Memory Map
):用于生成 heap dump 文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError
参数来让虚拟机出现 OOM 的时候自动生成 dump 文件; - jhat (
JVM Heap Analysis Tool
):该命令通常与 jmap 搭配使用,用来分析 jmap 生成的 dump 文件,jhat 内置了一个微型的HTTP/HTML
服务器,生成 dump 的分析结果后,可以在浏览器中查看; - jstack (
Java Virtual Machine Stack Trace
):用于生成 Java 虚拟机当前时刻的线程快照; - jinfo (
JVM Configuration info
):用于实时查看和调整后的虚拟机运行参数;
大约 16 分钟