Java虚拟机知识点【工具】

2019-07-27  本文已影响0人  O_Neal

命令行工具

1. jps

JVM Process Status Tool,显示虚拟机进程。
用法jps [-q] [-mlvV]
参数说明

例子jpsjps -l

2、jstat

JVM statistics Monitoring,对Java虚拟机内存进行监控统计。
用法jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
参数说明

例子jstat -gcutil -h2 -t 15754 100 5,表示监控进程号15754的垃圾收集统计值,每隔100ms输出一行,总共输出5次,每输出2次需要重新输出标题。

[root@root ~]# jstat -gcutil -h2 -t 15754 100 5
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
     11296830.0   0.00 100.00  21.80  25.80  98.41  96.33 113648 2500.825     0    0.000 2500.825
     11296830.2   0.00 100.00  21.80  25.80  98.41  96.33 113648 2500.825     0    0.000 2500.825
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
     11296830.3   0.00 100.00  21.80  25.80  98.41  96.33 113648 2500.825     0    0.000 2500.825
     11296830.4   0.00 100.00  21.80  25.80  98.41  96.33 113648 2500.825     0    0.000 2500.825
Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
     11296830.5   0.00 100.00  21.80  25.80  98.41  96.33 113648 2500.825     0    0.000 2500.825

输出的指标说明

3. jinfo

JVM Configuration info,可以实时查看和实时修改虚拟机参数。
用法jinfo [option] <pid>
参数说明

-flag <name> 打印指定的VM参数的值
-flag [+|-]<name> 启用或禁用指定的VM参数
-flag <name>=<value> 修改VM参数
-flags 打印VM参数
-sysprops 打印Java系统配置

例子jinfo 15754jinfo -flags 15754

4. jmap

JVM Memory Map,用来生成堆栈dump文件。
用法jmap [option] <pid>
参数说明

heap:打印Java堆摘要
histo[:live]:打印java对象堆的直方图; 如果指定了“live”选项,则仅计算实时对象
dump:生成dump快照

例子jmap -heap 15754jmap -histo:live 15754jmap -dump:live,file=.\heap_dump.hprof 15754

5. jstack

用来生成Java虚拟机当前时刻的线程快照,方便定位线程长时间停顿的问题,比如死锁、死循环、长时间等待等。
用法jstack -F [-m] [-l] <pid>
参数说明

例子jstack -l 15754

6. jhat

JVM Heap Analysis Tool,用来分析jmap生成的堆栈日志,生成HTML文件。一般会用可视化工具来分析堆栈日志,比如MAT。

7. jcmd

JDK建议使用 jcmd 替代 jstack、jinfo、jmap 等命令。
例子

可视化监控工具

常用的工具

  1. jconsole:JDK自带监控工具
  2. jvisualvm:JDK自带监控工具,比jconsole显示更多监控数据
  3. jmc:也是JDK自带监控工具,比jvisualvm显示更多监控数据
  4. MAT:Memory Analyzer Tool,Java虚拟机内存分析工具,能够快速的分析dump日志。

参考资料:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

上一篇 下一篇

猜你喜欢

热点阅读