JVM常用工具

Posted 小杨Vita

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM常用工具相关的知识,希望对你有一定的参考价值。

常用的jvm工具都在JDK安装目录的bin目录中,这儿只简要介绍下。

jps

它是使用频率最高的一条命令,用于显示进程的本地虚拟机唯一ID(LVMID)。
命令格式:
jps [option] [hostid]
说明:hostid可填远程ip,不填默认为本机。
常用选项:

选项作用
-m启动时传递给主类main的参数
-l主类的全限定名,或jar包路径
-v展示JVM启动参数

jstat

用于监视虚拟机各种运行状态信息的工具,在没有GUI工具时的首选!
命令格式:
jstat [option vmid [interval [s|ms] [count]] ]
说明:单位默认ms,无interval时值输出一行;vmid可为远程地址,格式为vmid@hostname[:port]
常用选项:

选项作用
-class监视类装载、卸载耗费的时间
-gc监视java堆的详细情况,各个区的大小和已用空间
-gccapacity与-gc类似,但主要关注各个区域的最大最小空间
-gcutil与-gc类似,但主要关注各个区域已占用比例
-gccause除-gcutil外,还输出每次gc产生的原因
-t首行添加时间戳列(jvm启动至今时间)
-hNN为数字,每N行打印一次表头

jinfo

查看虚拟机各项参数,比jps -v稍具体些。
命令格式:
jinfo [option] vmid

常用选项:

选项作用
-flagsJVM启动参数
-syspropsjava系统环境变量
啥也不写同时展示上述两者

jmap

用于生成堆转储快照(dump文件)。效果和 -XX:+HeapDumpOnOutOfMemoryError类似,后者加入JVM启动参数后当遇到OOM时便会产生dump文件,可事后分析堆运行情况。
命令格式:
jmap [option] vmid

常用选项:

选项作用
-dump:<dump-option>生成堆dump快照,选项有:live 仅保存存活对象,不写则为全部;format=b 二进制格式保存;file=<path> 文件路径。例:-dump:live,format=b,file=heap.bin
-heap显示java堆详细情况,仅在linux下有效
-F-dump无效时强制生成dump快照,仅在linux下有效

jhat

分析堆转储快照,与jmap搭配使用。分析后将启动http服务器,通过http://localhost:7000/即可查看分析结果,结果比较简陋,建议拷贝到本地使用JConsole/VisualVM等图形化工具来分析。
命令格式:
jhat <dump-file-path>

jstack

既然可以看堆快照,那肯定也可以看线程快照啦,jstack将展示JVM每一条线程正在执行方法的堆栈集合,用于分析线程死锁、长时间等待的原因。
命令格式:
jstack [option] vmid
常用选项:

选项作用
-l显示关于锁的附加信息
-F无法输出时强制输出

JConsole/VisualVM

当你用了图形化工具后,上面的那些命令就成为可选选项了。使用方式都很简单,网上有大把的教程。推荐使用VisualVM,插件丰富。

以上是关于JVM常用工具的主要内容,如果未能解决你的问题,请参考以下文章

JVM调优手段

JVM调优手段

Jvm垃圾收集器

java命令--jstat 工具使用

如何使用Java跟踪JVM文件系统访问

JVM java历史