jps
虚拟机进程状态工具
![](https://img-blog.csdnimg.cn/img_convert/f86e21ee1c43d391da1a531915d66065.png)
命令格式:jps[option][hostid]
option:
-q:显示进程ID
-m:显示进程ID,主类名称,main方法参数
![](https://img-blog.csdnimg.cn/img_convert/eea706a44cfb4d1910a93745d402d676.png)
-l:显示进程ID,主类全限定命称
![](https://img-blog.csdnimg.cn/img_convert/49330c82eff2ce6956f2049cae944994.png)
-v:显示进程ID,主类名称,JVM参数
![](https://img-blog.csdnimg.cn/img_convert/d4d65c7d1c91e63b45b57cf43594df6f.png)
-V:显示进程ID,主类名称
hostid:
主机或服务器IP,如不指定则默认当前主机IP(如果要远程访问主机,待访问主机要启动jstatd)
jstat
虚拟机分析监控工具
命令格式:jstat [option vmid [interval [count]]] <pid>
option:
-class:显示类加载器行为的统计信息
![](https://img-blog.csdnimg.cn/img_convert/2950229bd27cbccd1ccf02298b126570.png)
-compiler:显示Java HotSpot VM编译器行为的统计信息
![](https://img-blog.csdnimg.cn/img_convert/7255c342401d4580f043e2b6b1d6a94a.png)
-gc:显示垃圾回收堆行为的统计信息(单位kB)
![](https://img-blog.csdnimg.cn/img_convert/5329ac1de5f45787efa3adc27f02eaa5.png)
S0C/S1C:幸存者空间0/1容量大小
S0U/S1U:幸存者空间0/1使用大小
EC/EU:伊甸园空间容量/使用大小
OC/OU:老年代空间容量/使用大小
MC/MU:元空间容量/使用大小
CCSC/CCSU:压缩类空间容量/使用大小
YGC/YGCT:young gc次数/用时
FGC/FGCT:full gc次数/用时
GCT:总gc用时
-gcutil:显示垃圾回收统计信息
![](https://img-blog.csdnimg.cn/img_convert/e9ca0d405613f44dbcfd2a6c68d3956a.png)
S0/S1:幸存者区0/1利用率
E:eden空间利用率
O:老年代空间利用率
M:元空间利用率
CCS:压缩类空间利用率
-printcompilation:显示Java HotSpot VM编译方法统计信息
![](https://img-blog.csdnimg.cn/img_convert/7ff266bb8d0fea67bd7aba7b22816e1a.png)
vmid:
如果是本地虚机进程,vmid与pid一致
如果是远程虚机进程,vmid格式为:protocol:lvmid[@hostname[:port]/servername]
interval:
指定采样间隔,默认单位毫秒
count:
指定采样次数
jinfo
Java配置信息工具
命令格式:jinfo [option]<pid>
option:
no option:输出全部JVM参数和系统属性
-flag name:输出指定名称参数
![](https://img-blog.csdnimg.cn/img_convert/9ee296303d74e23e07559b0d8efc4af6.png)
-flag [+|-]name:开启/关闭指定名称参数
-flag name=value:设定指定名称参数值
-flags:输出全部JVM参数
![](https://img-blog.csdnimg.cn/img_convert/6a34dd690975ef8b439b8b7456500fbe.png)
-sysprops:输出全部系统属性
jmap
Java内存地图工具
命令格式:jmap [option] <pid>
option:
no option:查看进程共享对象信息(JDK9已移除)
-heap:查看Java堆信息(JDK9已移除,使用jhsdb jmap代替)
![](https://img-blog.csdnimg.cn/img_convert/3bed176f1950b915fc9cf5e15e831fa2.png)
-histo[:live]:查看堆中对象的统计信息,如果指定了live子选项,则只打印活动中的对象
![](https://img-blog.csdnimg.cn/img_convert/e7f0e260ddde30eabddb42fd68233fa5.png)
-clstats:查看类加载器信息
![](https://img-blog.csdnimg.cn/img_convert/f4ba6dcfd53b53dde687d99a7d7831e9.png)
-finalizerinfo:查看F-Queue队列(等待执行finalizer()方法的队列)
-dump[:live]:生成堆转储快照文件,如果指定live子选项,则只会转储活动中的对象
![](https://img-blog.csdnimg.cn/img_convert/eefde8a6a931407955f0ee4052eb8bd8.png)
jhat(JDK9中已移除)
分析jmap生成的dump文件
命令格式:jhat [option] <dump文件路径>
option:
-stack<bool>:开关对象分配调用栈跟踪,默认为true
-refs<bool>:开关对象引用跟踪,默认为true
-port<port>:指定jhat HTTP server的端口号,默认7000
-exclude<file>指定对象查询时需要排除的数据成员文件
-baseline<file>:指定一个基准堆转储,在两个heap dumps中具有相同object id的对象会被标记为not new和new,常用于比较两个不同的堆转储文件
-debug<int>:设置debug级别,0表示不输出调试级别日志,值越大越详细
-version:启动后打印版本就退出
jstack
查看线程堆栈信息或导出线程快照文件
命令格式:jstack[option]<pid>
option:
-l:查看堆栈信息、锁的附加信息
-F:当线程挂起时,jstack -l不被响应,强制输出堆栈(JDK9已移除,使用jhsdb jmap代替)
-m:同时输出Java和C/C++的堆栈信息(JDK9已移除,使用jhsdb jmap代替)