jstat使用实用教程

`大概阅读5分钟,本教程非常实用,清晰案例展示,建议收藏`

- 查询要监控的 java **进程号**(pid)参考:[https://javapub.blog.csdn.net/article/details/112383958](https://javapub.blog.csdn.net/article/details/112383958)

@[toc]

## jstat简介

1. jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。

2. jstat可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

3. jstat -class pid:显示加载class的数量,及所占空间等信息。

4. jstat -compiler pid:显示VM实时编译的数量等信息。

5. jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

## jstat命令格式

> jstat [optionsvmid [interval[s|ms] [count]]]

## 实例

#### 命令:

> jstat -gc -h3 6556 250 10

监控 gc ,每三行输出一次表头,监控的程序 pid 为 6556 ,没250ms 输出一次,一共 10 次。

#### 返回值:

```bash

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT

4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060

```

#### 截图:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210108212051999.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzc0NjA0,size_16,color_FFFFFF,t_70)

## 参数详细解析

> 详细说明使用方法,简单易懂 -class

类加载器.

Loaded: 已加载类的数量.

Bytes: 已加载的内存数量,单位:kBs

Unloaded: 已卸载类的数量.

Bytes:已卸载的内存数量,单位:kBs

Time: 类加载和卸载的总时间.

-compile

编译器.

Compiled: 编译任务的数量

Failed: 编译任务失败的数量.

Invalid: 无效的编译任务数量

Time: 所有编译任务所花时间总和.

FailedType: 最新一次失败编译任务的类型.

FailedMethod: 最新一次失败编译任务中的类名和方法

-gc

堆内存回收

S0C: 当前幸存者区0的容量 (kB).

S1C: 当前幸存者区1的容量(kB).

S0U: 幸存者区0已用内存 (kB).

S1U: 幸存者区1已用内存 (kB).

EC: 伊甸园区容量 (kB).

EU: 伊甸园区已用内存 (kB).

OC: 当前老旧区容量 (kB).

OU: 老旧区已用内存 (kB).

MC: 元数据区容量 (kB).

MU: 元数据区已用内存 (kB).

CCSC: 类压缩区容量 (kB).

CCSU: 类压缩区已用内存 (kB).

YGC: 新生垃圾回收事件数量.

YGCT: 新生垃圾回收时间.

FGC: 垃圾回收事件总和.

FGCT: 完整的一次垃圾回收时间.

GCT: 所有的垃圾回收时间.

欢迎关注笔者公众号:JavaPub,白嫖原创电子书及实战项目

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210108213743824.jpg)

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...