深入理解JVM笔记四-虚拟机性能监控与故障处理工具

时间:2022-12-27 16:22:15

jdk命令行工具

1.jps
虚拟机进程状态工具

常用的几个参数:
-l   输出Java应用程序的main class的完整包

-q 仅显示pid,不显示其它任何相关信息

-m 输出传递给main方法的参数

-v 输出传递给JVM的参数。在诊断JVM相关问题的时候,这个参数可以查看JVM相关参数的设置

2.jstat

虚拟机统计信息监视工具

C:\Program Files\Java\jdk1.8.0_91\bin>jstat -gcutil 1676
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00 100.00  53.66  80.08  91.20  81.37     72    2.443     0    0.000    2.443

C:\Program Files\Java\jdk1.8.0_91\bin>jstat -gc 1676
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
 0.0   6144.0  0.0   6144.0 83968.0  53248.0   172032.0   137768.9  173184.0 157951.9 23168.0 18851.1     72    2.443   0      0.000    2.443

堆内存 = 年轻代 + 年老代 + 永久代

年轻代 = Eden区 + 两个Survivor区(From和To)

S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)

EC、EU:Eden区容量和使用量

OC、OU:年老代容量和使用量

PC、PU:永久代容量和使用量

YGC、YGCT:年轻代GC次数和GC耗时

FGC、FGCT:Full GC次数和Full GC耗时

GCT:GC总耗时

深入理解JVM笔记四-虚拟机性能监控与故障处理工具

3 jinfo

java配置信息工具

观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数

实例:jinfo 2083

其中2083就是java进程id号,可以用jps得到这个id号。

输出内容太多了,不在这里一一列举,大家可以自己尝试这个命令。

4 jmap Java内存映像工具

jmap(Memory Map)和 jhat(Java Heap Analysis Tool)
jmap用来查看堆内存使用状况,一般结合jhat使用。

5.jhat 虚拟机堆转储快照分析工具