jstat 命令详解

news/2025/2/25 20:56:36/文章来源:https://www.cnblogs.com/zeroXcofebabe/p/18737230

以下是 jstat 命令的详细解析,包括常用参数及其用途:


命令格式

jstat [options] <vmid> [interval] [count]
  • vmid:JVM 进程 ID(或通过 jps 获取)
  • interval:采样间隔时间(单位:毫秒,默认只输出一次)
  • count:采样次数(默认无限次,若指定则按间隔输出指定次数)

常用参数(options)

参数 作用 典型输出字段说明
-class 类加载/卸载统计 Loaded(已加载类数), Bytes(占用的KB数), Unloaded(卸载类数), Time(加载耗时,单位:秒)
-compiler JIT 编译器编译的方法统计 Compiled(编译任务数), Failed(失败数), Invalid(无效数), Time(编译耗时)
-printcompilation 热点方法编译详情 Compiled(编译次数), Size(字节码大小), Type(编译类型), Method(方法名)
-gc GC 相关堆状态(总容量、已用、回收次数/时间等) S0C/S1C(Survivor容量), EC(Eden容量), OC(Old容量), YGC(Young GC次数), YGCT(Young GC总时间)
-gccapacity 各代内存池的最小/最大容量(新生代、老年代、元空间等) NGCMN(新生代最小容量), NGCMX(新生代最大容量), OC(当前老年代容量)
-gcutil 各内存区域使用率(按百分比显示) S0U(Survivor 0使用率), E(Eden使用率), O(Old使用率), M(Metaspace使用率), CCS(压缩类空间使用率)
-gcnew 新生代(Young Generation)详细状态 TT(对象年龄阈值), MTT(最大阈值), DSS(期望的Survivor大小)
-gcold 老年代(Old Generation)和元空间(Metaspace)状态 MC(Metaspace容量), MU(Metaspace使用量), CCSC(压缩类空间容量)
-gcmetacapacity Metaspace 元数据容量统计(Java 8+) MCMN(最小容量), MCMX(最大容量), MC(当前容量)

重点参数示例(以 -gc 输出为例)

输出字段详解:

 S0C    S1C    S0U    S1U    EC     EU     OC     OU     MC     MU     CCSC   CCSU   YGC    YGCT    FGC    FGCT    CGC    CGCT     GCT
512.0  512.0   0.0   438.0 4096.0 512.0  2048.0 1452.0 1536.0 1512.0 256.0  248.0   28     0.139   0      0.000   6      0.009    0.148
字段 含义 单位
S0C Survivor 0 区当前容量 (Capacity) KB
S1C Survivor 1 区当前容量 KB
S0U Survivor 0 区已使用量 (Used) KB
S1U Survivor 1 区已使用量 KB
EC Eden 区当前容量 KB
EU Eden 区已使用量 KB
OC Old 区当前容量 KB
OU Old 区已使用量 KB
YGC Young GC 触发次数
YGCT Young GC 累计耗时
FGC Full GC 触发次数
FGCT Full GC 累计耗时
GCT 所有 GC 总耗时

常用场景示例

  1. 查看 GC 状态(每1秒采样一次,共5次)

    jstat -gc <pid> 1000 5
    
  2. 监控内存使用率(百分比形式)

    jstat -gcutil <pid> 2000
    
  3. 检查类加载情况

    jstat -class <pid>
    
  4. 分析新生代内存分配

    jstat -gcnew <pid>
    
  5. 追踪 Metaspace 容量变化

    jstat -gcmetacapacity <pid> 3000 3
    

关键诊断技巧

  • Young GC 频繁:若 YGC 增长快且 EU(Eden使用量)在 GC 后未显著下降,可能存在短生命周期对象过多或 Eden 区过小。
  • Full GC 触发:若 FGC 次数持续增加且 OU(Old使用率)未降低,可能老年代存在内存泄漏。
  • Metaspace 溢出风险:当 M(Metaspace利用率)接近 100% 且持续不降,需检查动态类生成(如反射、ASM)或调整 -XX:MaxMetaspaceSize

通过 jstat 可以快速定位内存瓶颈或 GC 效率问题,结合 jmapjstack 等工具进一步分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/889748.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring复习-事务

事务概述 Spring事务编程概述 事务是开发中必不可少的东西,使用JDBC开发时,我们使用connnection对事务进行控制,使用MvBatis时,我们使用SqlSession对事务进行控制,缺点显而易见,当我们切换数据库访问技术时,事务控制的方式总会变化,Spring 就将这些技术基础上,提供了统…

Prompt进阶

在Prompt入门里,我们分享了OpenAI官方给出的提示词建议,但这些建议基本上是指导性的,方向性的,概念性的,虽然对我们编写提示词有很大帮助,但究竟我们的提示词好还是不好,效率怎么性,很大程度上要看每个人的理解,和提示词输出。那么有没有一个可操作性的,方法论的,谁…

P1174 打砖块

链接 https://www.luogu.com.cn/problem/P1174 思路刚开始的思路:设置dp[i][j]:前i列使用了j颗子弹,那么递推dpi,j=max(dpi,j,dpi-1,k+maxj-k),然后统计在第i列使用了j-k颗子弹会多出来多少颗,把这些遍历加到前面,见代码。喜提70pts。但是搞不懂哪里错了。 看了评论区的dp:70…

redis - [06] redis-benchmark性能测试

题记部分 001 || 参数含义 002 || 测试100个并发,100000个请求 启动redis-server redis-server /etc/redis.conf 进行性能测试 redis-benchmark -h localhost -p 6379 -c 100 -n 100000

百万架构师第四十三课:Nginx:Nginx 应用实战|JavaGuide

百万架构师系列文章阅读体验感更佳 原文链接:https://javaguide.net 公众号:不止极客 课程目标:Nginx 反向代理功能配置 Nginx 负载均衡实战 Nginx 动静分离配置 Nginx 配置文件分析 Nginx 多进程模型原理 Nginx 高可用集群实战反向代理​ 我们把请求发送到 proxy (代理服务…

大三下每日打卡003

今天配置了python的虚拟环境anaconda想尝试一下yolov8来实现识别

需求评审

需求评审是产品经理日常会议的形式之一,也是一个“公开处刑”的时刻。这篇文章,我们看看作者分享的如何做好一次需求评审的经验,供大家参考。前段时间有小伙伴留言,想聊一下关于需求评审面向不同角色如何处理,以及产品不同生命周期产品工作上有什么区别。我结合自己工作经…

牛客题解 | 对称的二叉树_1

牛客题库题解题目 题目链接 题目的主要信息:判断一棵二叉树是否是镜像,即判断二叉树是否是轴对称图形轴对称:非轴对称:举一反三: 学习完本题的思路你可以解决如下题目: BM28. 二叉树的最大深度 BM29. 二叉树中和为某一值的路径(一) BM32. 合并二叉树 BM33. 二叉树的镜像…

牛客题解 | 字符串变形

牛客题库题解题目 题目链接 题目主要信息:将字符串大小写反转 将整个字符串的所有单词位置反转举一反三: 学会了本题的思路,你将可以解决类似的字符串问题: BM84. 最长公共前缀 BM85. 验证IP地址 方法一:双逆转(推荐使用) 思路: 将单词位置的反转,那肯定前后都是逆序,…

牛客题解 | 在二叉树中找到两个节点的最近公共祖先

牛客题库题解题目 题目链接 题目的主要信息:给定一棵二叉树以及这棵树上的两个节点对应的val值 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点 二叉树非空,且每个节点值均不同举一反三: 学习完本题的思路你可以解决如下题目: BM29. 二叉树中和为某一值的路径(一) BM37. …

牛客题解 | 反转链表_1

牛客题库题解题目 题目链接 题目的主要信息:给定一个长度为\(n\)的链表,反转该链表,输出表头举一反三: 学习完本题的思路你可以解决如下题目: JZ6. 从尾到头打印链表 方法一:迭代(推荐使用) 思路: 将链表反转,就是将每个表元的指针从向后变成向前,那我们可以遍历原始…

牛客题解 | 判断链表中是否有环

牛客题库题解题目 题目链接 题目主要信息:给定一个链表的头节点,判断这个链表是否有环 环形链表如下所示:举一反三: 学习完本题的思路你可以解决如下题目: BM4.合并有序链表 BM5.合并k个已排序的链表 BM7.链表中环的入口节点 BM8.链表中倒数最后k个节点 BM9.删除链表的倒数…