JVM常用命令

发布时间:2023年12月18日

一、jps

jps是JVM进程查找工具,类似于linux的ps命令。我们使用这个命令主要是为了找到当前正在运行的JVM及其进程ID。
jps支持的参数选项:
在这里插入图片描述

二、jstat

jstat是用于监视JVM各种运行时的状态信息的命令行工具,包括类加载、内存、垃圾收集、即时编译等运行时数据。

D:\workspace\python\cloud_print>jstat -gc 27044 500 10
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064
 0.0   15360.0  0.0   15360.0 148480.0  9216.0   96256.0     9598.0   49456.0 47304.6 6784.0 5894.4      8    0.058   0      0.000   4      0.006    0.064

上述-gc表示查看垃圾收集状况,其中各列的含义如下(内存空间单位:KB,时间单位:秒):

  • S0C :幸存者0区容量
  • S1C :幸存者1区容量
  • S0U :幸存者0区已使用大小
  • S1U :幸存者1区已使用大小
  • EC :eden区容量
  • EU :eden区已使用大小
  • OC :老年代容量
  • OU :老年代已使用大小
  • MC :元数据空间容量
  • MU :元数据空间已使用大小
  • CCSC:压缩类空间容量
  • CCSU :压缩类空间已使用大小
  • YGC :年轻代GC次数
  • YGCT :年轻代GC耗时合计
  • FGC :整堆GC次数
  • FGCT :整堆GC耗时合计
  • GCT :所有GC耗时合计

jstat支持的参数选项:
在这里插入图片描述

三、jinfo

jinfo用于查看JVM参数信息,并可以实时调整少量可以在运行时改变的参数。

jinfo的输出内容有三部分,分别是:

  • Java System Properties:JVM运行时的环境变量
  • VM Flags:生效的虚拟机参数配置
  • VM Arguments:启动JVM时传入的参数、命令、及当时的对应会话的环境变量

可以使用jinfo -sysprops 只查看JVM运行时的环境变量。

可以使用jinfo -flags 只查看生效的虚拟机参数配置,比如jinfo -flags 10517。

可以使用jinfo -flag 查看指定参数的值,比如jinfo -flag MaxHeapSize 10517。

可以使用jinfo -flag [+|-] 实时开启或关闭某个可以在运行时改变的参数,比如jinfo -flag +HeapDumpOnOutOfMemoryError 10517。

可以使用jinfo -flag =实时修改某个可以在运行时改变的参数的值,比如jinfo -flag MaxHeapFreeRatio=75 10517。

四、jmap

jmap是java内存映像工具,主要用于查询当前堆和方法区的详细信息,生成堆的快照文件等

可以使用jmap -histo[:live] 分析当前对中对象,例如./jmap -histo:live 10517。

可以使用jmap -dump:[live,]format=b,file= 对目标JVM进行快照转储。

五、 jstack

jstack用于生成虚拟机当前时刻的线程快照。生成线程快照主要是为了定位长时间停顿的线程,比如线程间死锁、死循环、请求外部资源超时等等。通过jstack可以查看到各个线程的调用堆栈信息,就可以知道线程目前运行在哪一句代码,在做什么事情或者等待什么资源。

六、 jhsdb

jhsdb除了命令以外,还提供了图形化功能来监视分析JVM状况。

jhsdb使用如下命令开启目标JVM的图形化分析界面:

jhsdb hsdb --pid <pid>

在这里插入图片描述

七、jconsole

jconsole是一款对JVM的可视化监视管理工具,通过它我们可以实时地监视JVM的内存、线程、类加载等信息的变化趋势。

使用下面的命令启动:

jconsole

在这里插入图片描述

在这里插入图片描述

文章来源:https://blog.csdn.net/luckywuxn/article/details/135051227
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。