JVM学习之jstat使用方法
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使用方法的更多相关文章
- jvm学习(3)方法区、堆、对象存储位置
方法区 方法区,Method Area, 对于习惯在HotSpot虚拟机上开发和部署程序的开发者来说,很多人愿意把方法区称为“永久代”(Permanent Generation),本质上两者并不等价, ...
- JVM学习(4)——全面总结Java的GC算法和回收机制
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 一些JVM的跟踪参数的设置 Java堆的分配参数 -Xmx 和 –Xms 应该保持一个什么关系,可以让系统的 ...
- JVM学习(3)——总结Java内存模型
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 为什么学习Java的内存模式 缓存一致性问题 什么是内存模型 JMM(Java Memory Model)简 ...
- Java虚拟机JVM学习07 类的卸载机制
Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...
- Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论
Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...
- Java虚拟机JVM学习04 类的初始化
Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...
- Java虚拟机JVM学习03 连接过程:验证、准备、解析
Java虚拟机JVM学习03 连接过程:验证.准备.解析 类被加载后,就进入连接阶段. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 连接阶段三个步骤:验证.准备和解析. 类 ...
- Java虚拟机JVM学习02 类的加载概述
Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...
- Java虚拟机JVM学习01 流程概述
Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...
随机推荐
- 理解 OpenStack + Ceph (4):Ceph 的基础数据结构 [Pool, Image, Snapshot, Clone]
本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...
- android camera setMeteringArea详解
摘要: 本文为作者原创,未经允许不得转载:原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/5802814.html setMeteringArea() ...
- HDU 2516 取石子游戏
Problem Description 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出"Secon ...
- Activity的onCreate()的PersistableBundle 参数坑。
Bundle 与 PersistableBundle 区别 仅仅是Activity oncreate()的一个参数与两个参数的区别: @Override public void onCreate(Bu ...
- 第14章 位图和位块传输_14.4 GDI位图对象(1)
14.4.1 创建DDB (1)创建 HBITMAP= CreateBitmap(cx,cy,cPlanes,cBitsPixel,lpBits); 参数 说明 cx,cy 指定位图宽度和高度,单位为 ...
- Ac日记——大整数减法 openjudge 1.6 11
11:大整数减法 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个大的正整数相减的差. 输入 共2行,第1行是被减数a,第2行是减数b(a > b).每个大整数不超过20 ...
- [No000025]停止自嘲—IT 技术人必须思考的 15 个问题
行内的人自嘲是程序猿.屌丝和码农,行外的人也经常拿IT人调侃,那么究竟是IT人没有价值,还是没有仔细思考过自身的价值? 1.搞 IT 的是屌丝.码农.程序猿? 人们提到IT人的时候,总会想到他们呆板. ...
- 图片上传功能<转>http://blog.csdn.net/u011159417/article/details/50126023
以前也实现过上传,只不过每次都是,写完之后没有总结,下次遇到时,还要重新写,重新调式,很是浪费时间,所以,今天实现一个上传图片的功能,包括简单的页面和servlet,下次再要写这个功能时,直接拿过来就 ...
- Sonatype Nexus Maven仓库搭建和管理
安装 1. 从 http://www.sonatype.org/nexus/ 下载最新的 Nexus 压缩包, 现在已经不提供war包的下载 2. 解压到服务器目录, 例如我是放到/opt/nexus ...
- noip2008 双栈排序
题目描述 Description \(Tom\)最近在研究一个有趣的排序问题.如图所示,通过\(2\)个栈\(S_1\)和\(S_2\),\(Tom\)希望借助以下\(4\)种操作实现将输入序列升序排 ...