Jstat是JDK自带的一个轻量级工具,主要用JVM内建的指令对java应用程序的资源和性能进行实时的监控。

openjdk没有jstat,jps等命令解决办法

 执行以下命令即可:yum install java-1.7.0-openjdk-devel -y

基本语法

  jstat <option> [-t] [-h] <pid>  <interval> <count>

参数解释:

    • option   可以从下面参数中选择

      • -class                 显示ClassLoad的相关信息;
      • -compiler           显示JIT编译的相关信息;
      • -gc                     显示和gc相关的堆信息;
      • -gccapacity     显示各个代的容量以及使用情况;
      • -gccause             显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
      • -gcnew               显示新生代信息;
      • -gcnewcapacity  显示新生代大小和使用情况;
      • -gcold                 显示老年代和永久代的信息;
      • -gcoldcapacity    显示老年代的大小;
      • -gcpermcapacity 显示永久代的大小;
      • -gcutil             显示垃圾收集信息;
      • -printcompilation输出JIT编译的方法信息;
    • -t         可以在打印的列加上Timestamp列,用于显示系统运行的时间
    • -h     可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头
    • interval 执行每次的间隔时间,单位为毫秒
    • count   用于指定输出多少次记录,缺省则会一直打印
使用说明

  首先我们 使用linux命令 ps -ef|grep resin 查看我要监视进程的pid 23814

1、-class (jstat -class pid 1000 5 查看pid为23814的ClassLoad相关信息,每秒钟打印一次,总共打印5次)

  • Loaded 加载类的数量
  • Bytes 加载类合计大小
  • Unloaded 卸载类的数量
  • Bytes 卸载类合计大小
  • Time 表示加载和卸载类总共的耗时

  加载了9276个类,总大小为18045.9byte 卸载类0个,总大小为0byte,卸载和加载总耗时9.24ms

2、-compiler (Jstat -cpmpiler pid)

  

  • Compiled 表示编译任务执行的次数
  • Failed 表示编译失败的次数
  • Invalid 表示编译不可用的次数
  • Time 表示编译的总耗时
  • FailedType 表示最后一次编译的类型
  • FailedMethod 表示最后一次编译失败的类名和方法  

3、-gc (jstat -gc pid 1000 5 )

  

* S0C:第一个幸存区的大小
* S1C:第二个幸存区的大小
* S0U:第一个幸存区的使用大小
* S1U:第二个幸存区的使用大小
* EC:伊甸园区的大小
* EU:伊甸园区的使用大小
* OC:老年代大小
* OU:老年代使用大小
* MC:方法区大小
* MU:方法区使用大小
* CCSC:压缩类空间大小
* CCSU:压缩类空间使用大小
* YGC:年轻代垃圾回收次数
* YGCT:年轻代垃圾回收消耗时间
* FGC:老年代垃圾回收次数
* FGCT:老年代垃圾回收消耗时间
* GCT:垃圾回收消耗总时间

4、堆内存统计  -gccapacity(jstat -gccapacity pid:显示各个代的容量的信息)

  

  • NGCMN:新生代最小值(KB)
  • NGVMX:新生代最大值(KB)
  • NGC:当前新生代大小(KB)
  • S0C:同上
  • S1C:同上
  • EC:同上
  • OGCMN:老年代最小值(KB)
  • OGCMX:老年代最大值(KB)
  • OGC:当前老年代大小(KB)
  • OC:同上
  • PGCMN:永久代最小值(KB)
  • PGCMX:永久代最大值(KB)
  • PGC:当前永久代大小(KB)
  • PC:同上
  • YGC:同上
  • FGC:同上

 5、-gccause(jstat -gccause pid:显示最近一次GC的原因)

  • LGCC:上一次GC的原因,是G1垃圾回收器回收
  • GCC :当前GC的原因
6)新生代垃圾回收统计 jstat -gcnew pid
* S0C:第一个幸存区大小
* S1C:第二个幸存区的大小
* S0U:第一个幸存区的使用大小
* S1U:第二个幸存区的使用大小
* TT:对象在新生代存活的次数
* MTT:对象在新生代存活的最大次数
* DSS:期望的幸存区大小
* EC:伊甸园区的大小
* EU:伊甸园区的使用大小
* YGC:年轻代垃圾回收次数
* YGCT:年轻代垃圾回收消耗时间
 
6)新生代内存统计
* NGCMN:新生代最小容量
* NGCMX:新生代最大容量
* NGC:当前新生代容量
* S0CMX:最大幸存1区大小
* S0C:当前幸存1区大小
* S1CMX:最大幸存2区大小
* S1C:当前幸存2区大小
* ECMX:最大伊甸园区大小
* EC:当前伊甸园区大小
* YGC:年轻代垃圾回收次数
* FGC:老年代回收次数
7)老年代垃圾回收统计
* MC:方法区大小
* MU:方法区使用大小
* CCSC:压缩类空间大小
* CCSU:压缩类空间使用大小
* OC:老年代大小
* OU:老年代使用大小
* YGC:年轻代垃圾回收次数
* FGC:老年代垃圾回收次数
* FGCT:老年代垃圾回收消耗时间
* GCT:垃圾回收消耗总时间
 
8)老年代内存统计
* OGCMN:老年代最小容量
* OGCMX:老年代最大容量
* OGC:当前老年代大小
* OC:老年代大小
* YGC:年轻代垃圾回收次数
* FGC:老年代垃圾回收次数
* FGCT:老年代垃圾回收消耗时间
* GCT:垃圾回收消耗总时间
 
9)元数据空间统计
* MCMN: 最小元数据容量
* MCMX:最大元数据容量
* MC:当前元数据空间大小
* CCSMN:最小压缩类空间大小
* CCSMX:最大压缩类空间大小
* CCSC:当前压缩类空间大小
* YGC:年轻代垃圾回收次数
* FGC:老年代垃圾回收次数
* FGCT:老年代垃圾回收消耗时间
* GCT:垃圾回收消耗总时间
 
10)总结垃圾回收统计
* S0:幸存1区当前使用比例
* S1:幸存2区当前使用比例
* E:伊甸园区使用比例
* O:老年代使用比例
* M:元数据区使用比例
* CCS:压缩使用比例
* YGC:年轻代垃圾回收次数
* FGC:老年代垃圾回收次数
* FGCT:老年代垃圾回收消耗时间
* GCT:垃圾回收消耗总时间
 
11)JVM编译方法统计
* Compiled:最近编译方法的数量
* Size:最近编译方法的字节码数量
* Type:最近编译方法的编译类型。
* Method:方法名标识。
 

jvm性能监控(2)–JVM的监控工具jstat的更多相关文章

  1. jvm性能监控(4)–JVM的监控工具Jconsole

    下面主要说一下怎么JConsole远程连接springboot 项目 java  \-Djava.rmi.server.hostname=192.131.149.42 \-Dcom.sun.manag ...

  2. jvm性能监控与故障处理工具

    jdk为我们提供了一系列的jvm性能监控和故障处理工具,在这里根据学习进度进行整理记录.便于之后查阅 1.jps 虚拟机进程工具  类似于Linux系统中的ps命令,用于查看虚拟机进程,常用的有以下功 ...

  3. 第八章 JVM性能监控与故障处理工具(2)

    注意:该篇博客主要记录自<深入理解java虚拟机(第二版)> 说明:关于命令行的JVM性能监控与故障处理工具见<第七章 JVM性能监控与故障处理工具(1)> 1.图像化的故障处 ...

  4. JVM性能监控

    有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 这些问题在日常开发中可能被很多人忽 ...

  5. 第七章 JVM性能监控与故障处理工具(1)

    1.定位系统问题 依据 GC日志 堆转储快照(heapdump/hprof文件) 线程快照(threaddump/javacore文件) 运行日志 异常堆栈 分析依据的工具 jps:显示指定系统内的所 ...

  6. JVM性能监控与故障处理命令行工具

    JDK命令行工具 Sun公司作为”礼物“赠送给JDK使用者的工具: 这些命令行工具大多是jdk/lib/tools.jar类库的一层薄包装,主要功能代码是在tools类库(不属于java的标准API) ...

  7. JVM性能监控与故障处理命令汇总(jps、jstat、jinfo、jmap、jhat、jstack)

    给一个系统定位问题的时候,知识.经验是关键基础,数据是依据,工具才是运用知识处理数据的手段 使用适当的虚拟机监控和分析的工具可以加快我们分析数据.定位解决问题的速度,本文主要介绍了几款服 务器上常用的 ...

  8. jvm性能监控(3)-jdk自带工具 jps jstack jmap

    一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id   jstack 查看Java线程      jstack -l pid; 做thread dump ...

  9. 深入理解JVM(四)JVM性能监控与故障处理工具

    4.2 JVM命令行工具 1.jps(JVM Process Status Tool):JVM进程查看工具,命令行进入到jdk的bin目录下,使用命令:jps -l/-q/-v/-m 2.jstat( ...

随机推荐

  1. 前端开发HTML&css入门——盒子模型以及部分CSS样式

    CSS处理网页时,它认为每个元素都包含在一个不可见的盒子里.• 为什么要想象成盒子呢?因为如果把所有的元素都想象成盒子,那么我们对网页的布局就相当于是摆放盒子.• 我们只需要将相应的盒子摆放到网页中相 ...

  2. express通过生成器

    express通过生成器 [ 脚手架 ] 1. 作用:可以帮助快速构建一个express项目 2. 脚手架的安装 全局安装 [可以使用npm cnpm] $ cnpm i express-genera ...

  3. vue中对于图片是否正常加载的思考

    问题:由于业务需要,我们需要判断图片能否正常的加载,如果未正常加载的话,需要显示一张默认图片: 方案:1,由于后台返回的是一个图片id数组,例如 imgList=['343313131','21333 ...

  4. FCKeditor用在JSP中的几点注意事项

    转自:https://blog.csdn.net/asinzy/article/details/3854127 本篇文章主要介绍了"FCKeditor用在JSP中的几点注意事项", ...

  5. 一、.Net Core 分块上传文件

    一..Net Core 分块上传文件 一.前端实现 @* For more information on enabling MVC for empty projects, visit http://g ...

  6. Nginx优化总结

    目录 Nginx性能优化概述 一. 压力测试工具实战 二.了解影响性能指标 三.系统性能优化 四.静态资源优化 Nginx性能优化概述 基于Nginx性能优化,那么在性能优化这一章,我们将分为如下几个 ...

  7. utf8 中文

    #include <iostream> #include <codecvt> #include <fstream> #include <string> ...

  8. linux man命令后面各种括号的意义

    圆括号 我们经常会看到 在说一个对象的man page 的时候,会有这样的格式: mmap(2) shm_open(3) 这个后面的数字是什么意思呢,通过 man man 命令就可以知道,这个是数字是 ...

  9. LCT的一些坑【已经变成坑点集合了233】

    好了蠢蠢的我写了第一个LCT模板就炸掉了QAQ 开个blog记一下我能出多少锅. 1.splay写挂了hhh这个你真的是蠢 2.这个奇怪的东西 bool not_root(int x){return ...

  10. Test 6.29 T1 预算方案

    问题描述 "我需要你为我制订一个购物的方案.我将要为我的宫殿增置一些家具.有n 种备选家具,家具有主件和附件之分.在购买某个主件的附件之前,我必须先购买其对应的主件.某一主件的附件不会是另一 ...