jstat -gcutil 输出结果分析_助你了解jvm命令,查找JVM堆栈信息,分析性能问题。下面介绍一下jstat命令:

jstat:虚拟机统计信息监视工具(JVM Statistics Monitoring Tool)

说明:监视虚拟机的各种运行状态:类装载、内存、垃圾收集等运行数据。只用于Java进程或Java应用

语法jstat [option] PID [interval] [count]

pid查找办法:可以使用ps -aux | grep java 或者jps –v 命令找到java 进程 pid 

参数分析:

option:

-class 查看类装载的信息

-gc 查看java堆的状况

-gccapacity 查看堆中各个区域的最小容量和最大容量

-gcutil 查看堆中各个区域已使用空间占其总空间的百分比

-gccause 与-gcutil相同,另外还输出了:导致上一次GC的原因和当前GC的原因

-gcnew 查看堆中新生代的状况

-gcnewcapacity 查看堆中新生代的最小容量和最大容量

-gcold 查看堆中老年代的状况

-gcoldcapacity 查看堆中老年代的最小容量和最大容量

-gcpermcapacity 查看堆中永久代的最小容量和最大容量

-gcmetacapacity 查看元数据空间的当前大小、最大容量和最小容量(jdk1.8)

interval:表示查询的间隔时间,单位:毫秒

count: 表示查询的次数,如果interval和count都省略,则默认为只查询一次。

举例

jstat -gcutil 2000 10 #每2秒打印一次,采样10次

各指标的含义:

S0 — Heap上的 Survivor space 0 区已使用空间的百分比

S1 — Heap上的 Survivor space 1 区已使用空间的百分比

E — Heap上的 Eden space 区已使用空间的百分比

O — Heap上的 Old space 区已使用空间的百分比

P — Perm space 区已使用空间的百分比

YGC — 从应用程序启动到采样时发生 Young GC 的次数

YGCT– 单位为秒,从应用程序启动到采样时 Young GC 所用的时间

FGC — 从应用程序启动到采样时发生 Full GC 的次数

FGCT– 单位为秒,从应用程序启动到采样时 Full GC 所用的时间

GCT — 单位为秒,从应用程序启动到采样时用于垃圾回收的总时间

新生代(Young)中的Eden区:E

E: Eden区已使用的空间占其总空间的百分比

EC:Eden区的容量(Eden Capacity)

EU:Eden区已使用的空间(Eden Use)

新生代(Young)中的Survivor区:S0 S1

老年代(Old):O

永久代(Permanent):P

jdk8中:

元数据空间(Metaspace):M

元数据空间中的压缩类空间(Compressed Class Space):CCS

说明:

1>jdk8中已经没有永久代了,取而代之的是元空间,元空间占用的是本地内存,不占用虚拟机的内存。

2>Metaspace由Klass Metaspace和NoKlass Metaspace两部分组成。

3>M表示Metaspace已使用的百分比,CCS表示Klass Metaspace已使用的百分比(CCS=CCSU/CCSC)。

4>M的值达到了90%以上,不一定能说明metaspace已经用了很多了,因为内存是慢慢commit的,所以我们的分母是慢慢变大的,不过当我们commit到一定量的时候就不会再增长了。

5>根据MC,MU,CCSC,CCSU来判断metaspace的状态更靠谱。(注:可以在jstat -gc 中看到MU)

注:S0/S0C/S0U、S1/S1C/S1U、O/OC/OU、P/PC/PU、M/MC/MU、CCS/CCSC/CCSU 与 E/EC/EU类似

LGCC:最后一次GC发生的原因

GCC: 当前GC发生的原因

gccause示例:

jstat -gccause 1 2000 10

jstat -gccapacity

NGCMN:新生代的最小(初始化)容量

NGCMX:新生代的最大容量

NGC: 新生代当前的容量

ECMX: 新生代中Eden区的最大容量

S0CMX、S1CMX:新生代中Survivor区的最大容量

OGCMN:老年代的最小(初始化)容量

OGCMX:老年代的最大容量

OGC: 老年代当前的容量

PGCMN:永久代的最小(初始化)容量

PGCMX:永久代的最大容量

PGC: 永久代当前的容量

jdk8中:

MCMN: 元数据空间最小容量

MCMX: 元数据空间最大容量

MC: 当前元数据空间的大小

CCSMN: 压缩类空间CCS(即:Klass Metaspace)的最小容量

CCSMX: 压缩类空间CCS(即:Klass Metaspace)的最大容量

CCSC: 当前压缩类空间CCS(即:Klass Metaspace)的大小

jstat -gcnew

TT: 老年化阈值。被移动到老年代之前,在新生代空存活的次数

MTT:最大老年化阈值。

DSS:幸存者区所需空间大小

注意:单位是都是KB

Reference

JVM 使用jstat分析系统的垃圾回收情况的更多相关文章

  1. JVM调优总结 + jstat 分析(转)

    [转] JVM调优总结 + jstat 分析 JVM调优总结 + jstat 分析 jstat -gccause pid 1 每格1毫秒输出结果jstat -gccause pid 2000 每格2秒 ...

  2. JVM内存问题分析

    JVM运行时数据区: 1.方法区:类信息(类名,访问修饰符.字段描述.方法 描述等).常量.静态变量.即时编译后的class文件等.在GC时用永久代来实现方法区 2.运行时常量池:是方法区的一部分,存 ...

  3. 【转】JVM虚拟性能分析

    JDK自带的JAVA性能分析工具.它已经在你的JDK bin目录里了,只要你使用的是JDK1.6 Update7之后的版本.点击一下jvisualvm.exe图标它就可以运行了. 这里是VisualV ...

  4. JVM总结(二):垃圾回收器

    这一节我们来总结一下JVM垃圾收集器方面的东西. 垃圾回收器 判断对象引用是否失效 对象生存判断算法 引用判断过程 垃圾收集算法简介 垃圾收集器 新生代垃圾收集器 老年代垃圾收集器 新生代和老年代垃圾 ...

  5. Java虚拟机性能管理神器 - VisualVM(1) 简介 - JVM轻量级监控分析神器

    目录(?)[-] 一VisualVM是什么 二如何获取VisualVM 三获取那个版本 四VisualVM能做什么 显示JAVA应用程序配置和运行时环境 显示本地和远程JAVA应用程序运行状态 监控应 ...

  6. JVM源码分析之Metaspace解密

        概述 metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所 ...

  7. JVM性能优化, Part 3 垃圾回收

    ImportNew注:本文是JVM性能优化 系列-第3篇-<JVM性能优化, Part 3 —— 垃圾回收> 第一篇 <JVM性能优化, Part 1 ―― JVM简介 > 第 ...

  8. jvm 调优(2)垃圾回收算法

    可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数. ...

  9. (转载)JVM中的内存模型与垃圾回收

    转载自微信公众号:Java高级架构(Java-jiagou)-----看完这篇文章,我奶奶都知道JVM中的内存模型与垃圾回收了! 六.内存模型 6.1  内存模型与运行时数据区 Java虚拟机在执行J ...

  10. 学习一下 JVM (三) -- 了解一下 垃圾回收

    一.简单了解几个概念 1.什么是垃圾(Garbage)?什么是垃圾回收(Garbage Collection,简称 GC)? (1)什么是垃圾(Garbage)? 这里的垃圾 指的是 在程序运行过程中 ...

随机推荐

  1. 通过C#转换图片到PDF文档

    将图片(JPG.PNG)转换为PDF文件可以帮助我们更好地保存和分享图片.此外,PDF文件还具有强大的安全特性,将图片转换为PDF后,我们可以通过设置密码来文件内容不被泄露.本文将介绍如何将JPG/P ...

  2. Django的MVT模式和Spring的MVC模式类比

    Spring的MVC模式 MVC: Model-View-Controller 模型-视图-控制器 M: 数据处理 V: 界面显示 C: 逻辑处理 最开始用于Desktop程序开发,现在已被广泛使用, ...

  3. CentOS——磁盘分区

    Centos7-磁盘分区磁盘层次结构–磁盘分区方法情况一:磁盘分区–磁盘小于2T fdisk情况二:磁盘分区–磁盘大于2T centos6:parted centos7:fdisk一.磁盘小于2T情况 ...

  4. 前端必备的 CSS 库,normalize.css

    这是一个小 CSS 样式表,是著名的库,作为 CSS 基础样式的一部分,可消除客户端渲染不一致问题. 地址是 https://necolas.github.io/normalize.css/ 别小看这 ...

  5. 数字先锋 | 打造专属AI大脑,天翼云助力重庆理工大学开启智慧校园新篇!

    从在线课程的蓬勃兴起,到远程教育的逐渐普及,再到智能教学工具的广泛应用--人工智能.大数据.云计算等前沿技术迅速发展的当下,科技正以前所未有的深度和广度重塑教育领域,促使教育各个层面发生深刻变革.师生 ...

  6. VSCode 终端中文乱码解决方案

    问题描述 以下为一个简单的 c++ 文件代码,注意中文部分的显示内容 //测试代码 #include <stdio.h> int main() { int y = 10; int coun ...

  7. 【Linux】U-Boot 加载并启动 Linux 系统程序

    U-Boot 加载并启动 Linux 系统程序 零.介绍 最近在玩一些嵌入式的开发板,在引导操作系统时需要用到U-Boot,故此研究一下. U-Boot(Universal Bootloader)是一 ...

  8. 【Python】配置pip使用国内镜像源

    配置pip使用国内镜像源 零.问题 使用pip安装插件时总是很慢,咋解决呢? 壹.解决 在桌面上你的文件夹内新建pip目录,一般路径如下:C:\Users\{$你的用户名},比如我的用户名是Minuy ...

  9. [T.4] 团队项目:团队代码管理准备

    团队的代码仓库地址 [GitHub - Meng-XuanYu/JayJay-TeamVersionControl: A public repo for BUAASE2025 course homew ...

  10. JMeter提取响应结果保存到本地总结

    1.说明 本次实验以登录接口为例提取响应结果中的uid和ticket参数并保存到csv文件 2.脚本结构 说明: 1)本次实验的在于BeanShell后置处理程序的编写,登录接口参数传递之前有些总结, ...