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

基本语法

  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: Survivor0(幸存区0)大小(KB)
  • S1C: Survivor1(幸存区1)1大小(KB)
  • S0U: Survivor0(幸存区0)已使用大小(KB)
  • S1U: Survivor1(幸存区1)已使用大小(KB)
  • EC  : Eden(伊甸区)大小(KB)
  • EU  : Eden(伊甸区)已使用大小(KB)
  • OC :老年代大小(KB)
  • OU : 老年代已使用大小(KB)
  • PC : Perm永久代大小(KB)
  • PU : Perm永久代已使用大小(KB)
  • YGC:新生代GC个数
  • YGCT:新生代GC的耗时(秒)
  • FGC  :Full GC次数
  • FGCT:Full GC耗时(秒)
  • GCT :GC总耗时(秒) 

 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、-gcnew (jstat -gcnew pid:显示新生代的详细信息)

  

  • TT:新生代到老年代的年龄;
  • MTT:新生代到老年代的最大年龄;
  • DSS:所需的survivor的大小;

  7、-gcnewcapacity(jstat -gcnewcapacity pid:输出新生代各个区的详细信息)

  

  • S0CMX:S0最大空间大小(KB)
  • S1CMX:S1最大空间大小(KB)
  • ECMX:Eden最大空间大小(KB)
  • NGCMX:年轻代最大空间大小(KB)

  8、-gcold(jstat -gcold pid:显示老年代GC的详细情况)

  

 9、-gcoldcapacity(jstat -gcoldcapacitp pid:输出老年代的详细信息)

  

 10、-gcutil(jstat -gcutil pid:查看每个代区域使用的百分比情况)

  

JVM学习之jstat使用方法的更多相关文章

  1. jvm学习(3)方法区、堆、对象存储位置

    方法区 方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价, ...

  2. JVM学习(4)——全面总结Java的GC算法和回收机制

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 一些JVM的跟踪参数的设置 Java堆的分配参数 -Xmx 和 –Xms 应该保持一个什么关系,可以让系统的 ...

  3. JVM学习(3)——总结Java内存模型

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 为什么学习Java的内存模式 缓存一致性问题 什么是内存模型 JMM(Java Memory Model)简 ...

  4. Java虚拟机JVM学习07 类的卸载机制

    Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...

  5. Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

  6. Java虚拟机JVM学习04 类的初始化

    Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

  7. Java虚拟机JVM学习03 连接过程:验证、准备、解析

    Java虚拟机JVM学习03 连接过程:验证.准备.解析 类被加载后,就进入连接阶段. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 连接阶段三个步骤:验证.准备和解析. 类 ...

  8. Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  9. Java虚拟机JVM学习01 流程概述

    Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

随机推荐

  1. Java方法区和运行时常量池溢出问题分析

    运行时常量池是方法区的一部分,方法区用于存放Class的相关信息,如类名.访问修饰符.常量池.字段描述.方法描述等. String.intern()是一个native方法,它的作用是:如果字符串常量池 ...

  2. UVA 11582 Colossal Fibonacci Numbers!【数学】

    大一刚开始接触ACM就买了<算法竞赛入门经典>这本书,当时只能看懂前几章,而且题目也没做,粗鄙地以为这本书不适合自己.等到现在快大三了再回过头来看,发现刘老师还是很棒的! 扯远了... 题 ...

  3. 三维网格去噪算法(L0 Minimization)

    [He et al. 2013]文章提出了一种基于L0范数最小化的三角网格去噪算法.该思想最初是由[Xu et al. 2011]提出并应用于图像平滑,假设c为图像像素的颜色向量,▽c为颜色向量的梯度 ...

  4. POJ1426Find The Multiple[BFS]

    Find The Multiple Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 27433   Accepted: 114 ...

  5. BZOJ4152The Captain[DIjkstra]

    4152: [AMPPZ2014]The Captain Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 700  Solved: 266[Submit ...

  6. POJ2184 Cow Exhibition[DP 状态负值]

    Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12420   Accepted: 4964 D ...

  7. 网络之TCP/IP四层模型

    应用层(应用层.表示层.会话层):FTP.Telnet.DNS.SMTP 传输层(传输层):TCP<传输控制协议> . UDP<用户数据报文协议> 网际互连层(网络层):IP. ...

  8. 基于SPSS的美国老年夏季运动会运动员数据分析

             本文是课程训练的报告,部分图片由于格式原因并没有贴出,有兴趣者阅读完整报告者输入以下链接 http://files.cnblogs.com/files/liugl7/基于SPSS的老 ...

  9. SQL存储过程、视图

    存储过程: 存储过程(stored procedure)有时也称为sproc.存储过程存储于数据库中而不是在单独的文件中,有输入参数.输出参数以及返回值等. 在数据库中,创建存储过程和创建其他对象的过 ...

  10. [转帖]VS选中某个代码报错修补

    如题,此问题,出现在xp sp3的情况比较多,至少在我常用的两台电脑上面是这样子的, 完整的安装了VS2010之后,在编写代码的时候,只要用鼠标拖选代码或者双击,选中某个代码,IDE就自动报错 重启 ...