目录

jstat -gc

jstat -gcutil

jstat -gcnew

jstat -gcold


jstat -gc

1、jps获取进程号(也可以是用ps -ef 或 ps -aux)

2、jstat -gc xxx

jstat -gc 2040S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
512.0  1024.0 489.3   0.0   172544.0 115728.9  193536.0   88848.1   50432.0 48798.3 5888.0 5434.6    156    0.550   2      0.124    0.674

各属性代表的含义:

末尾为C,代表该区Capacity(容量)

末尾为U,代表Used(已使用的容量)

前缀代表区域。

区域 含义
S0C Survive0 第一个幸存区的容量大小
S1C Survive1 第二个幸存区的容量大小
S0U Survive0 第一个幸存区已使用的内存大小
S1U Survive1 第二个幸存区已使用的内存大小
EC Eden 伊甸园区的容量大小
EU Eden 伊甸园区已使用的内存大小
OC Old 老年代的容量大小
OU Old 老年代已使用的内存大小
MC Meta 方法区的容量大小
MU Meta 方法区已使用的内存大小
YGC Young GC发生的次数
YGCT Young GC的总耗时
FGC Full GC发生的次数
FGCT Full GC的总耗时

--说明:

其中,年轻代(S0C、S1C、EC)、老年代(OC)在不同的时间点看到的容量可能会不一样。

其原因是:容量大小会因为JVM参数(Xmx、Xms)配置的大小不一致,而导致各区容量会在内存紧张时变为最大,内存空闲时变为最小。这是因为JVM的参数配置,而导致的内存容量的收缩与扩张。

在某种程度上来讲可以将【Xmx、Xms】、【XX:MaxNewSize、XX:NewSize】配置为一样大小,减少在内存紧张时,对象在各内存区流转而引起的内存扩张、收缩,进而充分利用各区内存资源。

实时监控

除了查询之后,还可以在jstat -gc后面加毫秒后缀、打印次数,来实现实时监控,如下图中的 1000代表1000毫秒,即一秒,100代表打印100次。

在上图中我们还可以看到Eden区的已使用容量在不断的增大,也就是我们程序的运行产生的对象在Eden区增长。当Eden区的EU达到了EC(最大容量)时,这个时候就会进行Eden区的垃圾回收,依然存活的对象会从Eden区转移到S0区;当对象持续增长时,就会执行S0的垃圾回收,依然存活的对象会从S0转移到S1,如果对象依旧持续产生,就会有对象转移到Old区,也就是老年代。当老年代的内存容量也满了时,就会发生Full GC。

通过jstat -gc 毫秒 次数,可以实时的监控到程序的内存情况,以及对象在各区之间的流转。


jstat -gcutil

用来查询当前进程下,各区已使用的内存占比情况

S0:S0区的已使用的内存占比

S1:S1区已使用的内存占比

E:Eden区已使用的内存占比

O:Old区已使用的内存占比

M:方法区已使用的内存占比

YGC:Young GC发生的次数

YGCT:Young GC的总耗时

FGC:Full GC发生的次数

FGCT:Full GC的总耗时

GCT:Young GC + Full GC的总耗时

同样的,jstat -gcutil同样可以实时查询

可以看到,Eden区在程序运行中,内存占比在不断的增大


jstat -gcnew 、jstat -gcold

类似的,jstat -gcnew与jstat -gcold是用来排查年轻代和年老代的内存占用情况,同样的,可以通过加 毫秒 次数 来实现实时查询:

从这张图中,可以更加清晰的看到,对象在Eden区、S0、S1之间的流转。

【JVM】之监控命令-jstat详解相关推荐

  1. java jstack使用_JAVA语言之JVM 中jstack命令使用详解

    本文主要向大家介绍了JAVA语言之JVM 中jstack命令使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java程序问题定位时线程栈信息是一个重要线索,如下: " ...

  2. 性能监控命令vmstat详解【杭州多测师】【杭州多测师_王sir】

    vmstat命令:用来获得有关进程.虚存.页面交换空间及 CPU活动的信息.这些信息反映了系统的负载情况. vmstat 命令的输出 vmstat 1 10 实例解读一: CPU状态的监控指标主要有以 ...

  3. linux ps命令使用详解

    PS是LINUX下最常用的也是非常强大的进程查看命令 1. ps简介 前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题. 要对进程进行监测和控制,首先必须要了 ...

  4. Zabbix监控Jenkins过程详解

    这篇文章主要介绍了基于zabbix实现监控Jenkins的过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 一.监控架构图 二.实现思路 在 Jenkins 上安装 ...

  5. 强大的strace命令用法详解

    强大的strace命令用法详解_Linux教程_Linux公社-Linux系统门户网站 strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和教学的Linux用户空间 ...

  6. 面试官都在问 | Linux命令mpstat详解

    面试官都在问 | Linux命令mpstat详解 1. mpstat的基本用法 mpstat的全称为Multiprocessor Statistics,是一款常用的多核CPU性能分析工具,用来实时查询 ...

  7. Linux 程序异常诊断工具(pstack与strace命令使用详解、死锁)

    strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用耗时:pstack工具对指定PID的进程输出函数调用栈. 一.strace 1.1 基本概念 strace是一个可用于诊 ...

  8. JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)

    JVM(Java虚拟机) JVM 内存模型 结构图 jdk1.8 结构图(极简) jdk1.8 结构图(简单) JVM(Java虚拟机): 是一个抽象的计算模型. 如同一台真实的机器,它有自己的指令集 ...

  9. linux下top命令参数详解

    linux下top命令参数详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: ...

最新文章

  1. 牛客c语言数组,牛客网学习笔记 - C/C++
  2. httpposterror_http请求405错误方法不被允许的解决 (Method not allowed)
  3. ML之多分类预测:以某个数据集为例从0到1深入理解科学预测之多分类问题的思路框架
  4. Android 带有字数统计的 TextInputLayout
  5. poj1419 Graph Coloring 最大独立集(最大团)
  6. 【报告分享】中国人工智能产业发展指数.pdf
  7. 风阻能发电装置叶片的动力学仿真
  8. matlab绘制单位球的三维网格图,matlab绘制三维网格图
  9. Linux 中复制问题,错误显示 cp:omitting directory
  10. 2021 年 15 款适用于 PC 和 Mac 的最佳 Android 模拟器
  11. 第五届“强网”拟态防御国际精英挑战赛——线上预选赛火热开赛!
  12. php 清除js,php,js清除cookie
  13. 51单片机:数码管(静态+动态)
  14. intel realsense 深度相机深度图像处理API总结
  15. Git的安装教程(完成clone一个项目到本地)
  16. 洛伦兹力的matlab求解,问:由安培力推导洛伦兹力的过程?
  17. 辐射76服务器维护,B社重申会为《辐射76》加入Mod支持 请勿担心
  18. 插件体系结构软件开发方法研究
  19. SAP GUI750快捷键保存密码
  20. Kotlin 扩展库KTX

热门文章

  1. FPGA的六层电梯控制器Verilog语言(二)
  2. 硬件课程设计—电梯控制系统
  3. termux安装jupyters失败解决方案
  4. Unity学习笔记之用粒子系统实现类似金币飞入金币条动画效果
  5. Ubuntu下视频播放加速软件SMPlyer
  6. java date转换timestamp_Java Date转Timestamp
  7. 行列式基础知识,重要定理和公式
  8. 宏华Atsl ver 2000 Build 20020225 65 零售版
  9. 如何设置Qt程序软件的语言翻译(Qt自带翻译软件)
  10. 如何实现Linux系统和Windows系统双系统