这个章节主要介绍常用的JavaJDK中的命令行工具
常用的JDK命令行工具
- jps : JVM Process Status Tool
显示指定系统内所有的HotSpot虚拟机进程
- jinfo : Configuration Info for Java
显示虚拟机配置信息
- jstat : JVM Statistics Monitoring Tool
用于收集Hotspot虚拟机各方面的运行数据
- jstack : JVM Stack Trace
显示虚拟机的线程快照
- jmap : JVM Memory Map
生成虚拟机的内存转储快照,生成heapdump文件
- jhat : JVM Heap Dump Browser
用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户在浏览器上查看分析结果
jps:查看虚拟机进程信息
这个命令类似于linux的ps命令,列出本机所有java进程的pid
例如在本人电脑执行,显示如下:
jinfo:查看虚拟机配置参数信息
|
|
option,一般使用 “-flag
jstat:查看虚拟机各运行状态信息
|
|
option,选项,我们一般使用 -gc 查看gc情况
vmid,VM的进程号,即当前运行的java进程号
interval,间隔时间,单位为秒或者毫秒
count,打印次数,如果缺省则打印无数次
|
|
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
EC、EU:Eden区容量和使用量
OC、OU:年老代容量和使用量
PC、PU:永久代容量和使用量
YGC、YGT:年轻代GC次数和GC耗时
FGC、FGCT:Full GC次数和Full GC耗时
GCT:GC总耗时
jstack:虚拟机堆栈跟踪
jstack命令用于生成虚拟机当前时刻的线程快照。线程快照指的是当前虚拟机内的每一条线程正在执行的方法堆栈的集合,生成线程快照的作用是,可用于定位线程出现长时间停顿的原因,如线程间死锁,死循环,请求外部资源导致的长时间等待等问题,当线程出现停顿时 就可以用jstack各个线程调用的堆栈情况。
jstack命令格式
jmap:生成虚拟机内存转储快照
|
|
常用的option选项有:
-dump 生成Java堆转储快照,格式为: -dump:[live , ]format=b , file=,其中live子参数 说明只dump出存活的对象
-finalizerinfo 显示在F-Queue中等待Finalizer线程执行finalize方法的对象
-heap 显示Java堆详细信息,如使用哪种回收器,参数配置,分代状况等
dump出来的文件可以用MAT、VisualVM等工具查看,这里用jhat查看
打开浏览器输入http://127.0.0.1:8080 就可以查看了。
显示堆信息则执行jmap -heap,如下所示:
jhat
|
|
一般和jmap配合使用,如上方的jhat -port 8080 1.bat