当前位置: 首页 > news >正文

jstat命令详解

jstat 用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT 编译等运行数据。

命令的使用格式如下。

jstat [option] LVMID [interval] [count]

各个参数详解:

  • option:操作参数
  • LVMID:本地虚拟机进程ID
  • interval:连续输出的时间间隔
  • count:连续输出的次数

option 参数内容详解!

option 参数注释
classclass loader的行为统计
compilerHotSpt JIT编译器行为统计
gc垃圾回收堆的行为统计
gccapacity各个垃圾回收代容量和他们相应的空间统计
gcutil垃圾回收统计概述
gccause垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因
gcnew新生代行为统计
gcnewcapacity新生代与其相应的内存空间的统计
gcold年老代和永生代行为统计
gcoldcapacity年老代行为统计
gcmetacapacity元空间行为统计
printcompilationHotSpot编译方法统计

option 参数使用如下。

1、示例参数:class

-class参数用于监视类装载、卸载数量、总空间以及耗费的时间。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -class 20094
Loaded  Bytes  Unloaded  Bytes     Time12988 23508.0        0     0.0      30.21

各个参数解读如下:

  • Loaded : 加载class的数量
  • Bytes : class字节大小
  • Unloaded : 未加载class的数量
  • Bytes : 未加载class的字节大小
  • Time : 加载时间
2、示例参数:compiler

-compiler参数用于输出 JIT 编译过的方法数量耗时等。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -compiler 20094
Compiled Failed Invalid   Time   FailedType FailedMethod14524      5       0    43.33          1 org/springframework/core/annotation/AnnotationsScanner processMethodHierarchy

各个参数解读如下:

  • Compiled : 编译数量
  • Failed : 编译失败数量
  • Invalid : 无效数量
  • Time : 编译耗时
  • FailedType : 失败类型
  • FailedMethod : 失败方法的全限定名
3、示例参数:gc

-gc参数用于垃圾回收堆的行为统计,属于常用命令。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gc 20094S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
18432.0 18944.0  0.0   10133.7 281088.0 197255.5  139776.0   55324.5   70420.0 66352.5 9020.0 8405.8     25    0.599   3      0.673    1.273

其中 C 表示 Capacity 总容量,U 表示 Used 已使用的容量。

各个参数解读如下:

  • S0C:survivor0区的总容量
  • S1C:survivor1区的总容量
  • S0U:survivor0区已使用的容量
  • S1U:survivor1区已使用的容量
  • EC:Eden区的总容量
  • EU:Eden区已使用的容量
  • OC:Old区的总容量
  • OU:Old区已使用的容量
  • MC:泛指Metaspace区的总容量
  • MU:泛指Metaspace区已使用的容量
  • CCSC:泛指类压缩空间(Compressed class space,属于Metaspace区的一部分)的总容量
  • CCSU:泛指类压缩空间(Compressed class space,属于Metaspace区的一部分)已使用的容量
  • YGC:新生代GC次数
  • YGCT:新生代GC总耗时
  • FGC:Full GC次数
  • FGCT:Full GC总耗时
  • GCT:GC总耗时

还可以通过如下方式,来详细的监控 gc 回收情况,示例如下。

jstat -gc 20094 2000 20

以上的命令表示每隔 2000ms 输出进程号为 7140 的 gc 回收情况,一共输出 20次。

输出部分内容如下!

图片

4、示例参数:gccapacity

-gccapacity参数和-gc一样,不过还会输出 Java 堆各区域使用到的最大、最小空间。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gccapacity 20094NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC43520.0 698880.0 355840.0 18432.0 18944.0 281088.0    87552.0  1398272.0   139776.0   139776.0      0.0 1110016.0  70420.0      0.0 1048576.0   9020.0     25     3

各个参数解读如下:

  • NGCMN : 新生代占用的最小空间
  • NGCMX : 新生代占用的最大空间
  • NGC:当前新生代的容量
  • OGCMN : 老年代占用的最小空间
  • OGCMX : 老年代占用的最大空间
  • OGC:当前老年代的容量
  • MCMN : Metaspace区占用的最小空间
  • MCMX : Metaspace区占用的最大空间
  • MC:当前Metaspace区的容量
  • CCSMN : Compressed class space区占用的最小空间
  • CCSMX : Compressed class space区占用的最大空间
  • CCSC:当前Compressed class space区的容量
5、示例参数:gcutil

-gcutil参数同-gc,不过输出的是已使用空间占总空间的百分比。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gcutil 20094S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT0.00  53.49  91.96  39.58  94.22  93.19     25    0.599     3    0.673    1.273
6、示例参数:gccause

-gccause参数用于垃圾收集统计概述(同-gcutil),附加最近两次垃圾回收事件的原因。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gccause 20094S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC0.00  53.49  92.65  39.58  94.22  93.19     25    0.599     3    0.673    1.273 Allocation Failure   No GC

各个参数解读如下:

  • LGCC:最近垃圾回收的原因
  • GCC:当前垃圾回收的原因
7、示例参数:gcnew

-gcnew参数用于统计新生代的行为。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gcnew 20094S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
18432.0 18944.0    0.0 10133.7  2  15 18432.0 281088.0 265231.7     25    0.599

各个参数解读如下:

  • TT:Tenuring threshold(提升阈值)
  • MTT:最大的tenuring threshold
  • DSS:survivor区域大小 (KB)
8、示例参数:gcnewcapacity

-gcnewcapacity参数用于新生代与其相应的内存空间的统计。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gcnewcapacity 20094NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC43520.0   698880.0   355840.0 232960.0  18432.0 232960.0  18944.0   697856.0   281088.0    25     3

各个参数解读如下:

  • S0CMX:最大的S0空间 (KB)
  • S0C:当前S0区的容量 (KB)
  • ECMX:最大eden空间 (KB)
  • EC:当前eden区的容量 (KB)
9、示例参数:gcold

-gcold参数用于统计老年代的行为。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gcold 20094MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT70420.0  66352.5   9020.0   8405.8    139776.0     55324.5     25     3    0.673    1.273
10、示例参数:gcoldcapacity

-gcoldcapacity参数用于统计老年代的大小和空间。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gcoldcapacity 20094OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT87552.0   1398272.0    139776.0    139776.0    25     3    0.673    1.273
11、示例参数:gcmetacapacity

-gcmetacapacity参数用于统计元空间的大小和空间。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -gcmetacapacity 20094MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT0.0  1112064.0    72468.0        0.0  1048576.0     9276.0    26     3    0.673    1.513
12、示例参数:printcompilation

-printcompilation参数用于HotSpot编译方法统计。

在操作系统终端输入如下命令,即可查看相关信息,示例如下。

$ jstat -printcompilation 20094
Compiled  Size  Type Method4387    123    1 org/apache/catalina/core/StandardContext getLoader

各个参数解读如下:

  • Compiled:被执行的编译任务的数量
  • Size:方法字节码的字节数
  • Type:编译类型
  • Method:编译方法的类名和方法名。类名使用”/” 代替 “.” 作为空间分隔符. 方法名是给出类的方法名
http://www.lryc.cn/news/529455.html

相关文章:

  • [Collection与数据结构] B树与B+树
  • Ubuntu 24.04 安装 NVIDIA Container Toolkit 全指南:让Docker拥抱GPU
  • 17.Word:李楠-学术期刊❗【29】
  • 图漾相机——C++语言属性设置
  • 【性能优化专题系列】利用CompletableFuture优化多接口调用场景下的性能
  • docker安装emqx
  • DeepSeek超越ChatGPT的能力及部分核心原理
  • Leetcode 3434. Maximum Frequency After Subarray Operation
  • 《DeepSeek-R1 问世,智能搜索领域迎来新变革》
  • GEE | 植被总初级生产力GPP的时间变化特征
  • 安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】
  • 本地部署DeepSeek
  • 赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。
  • Hive:窗口函数(1)
  • docker安装nacos2.2.4详解(含:nacos容器启动参数、环境变量、常见问题整理)
  • 基于PLC的变频调速系统设计
  • 鸿蒙开发在onPageShow中数据加载不完整的问题分析与解决
  • 本地搭建deepseek-r1
  • 【数据结构与算法】AVL树的插入与删除实现详解
  • 【机器学习】自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数
  • unity学习23:场景scene相关,场景信息,场景跳转
  • AI(计算机视觉)自学路线
  • Linux第104步_基于AP3216C之I2C实验
  • 常用Android模拟器(雷电 MuMu 夜神 Genymotion 蓝叠) - 20250131
  • 算法题(53):对称二叉树
  • Golang 并发机制-2:Golang Goroutine 和竞争条件
  • 深入剖析 CSRF 漏洞:原理、危害案例与防护
  • C++和Python实现SQL Server数据库导出数据到S3并导入Redshift数据仓库
  • AI大模型开发原理篇-5:循环神经网络RNN
  • 4-图像梯度计算