二,JVM 自带命令行工具之JStat
jstat:虚拟机统计信息见识工具
jstat是用于见识虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
jstat option vmid [interval[s|ms] [count]]


E表示Eden;
s1,s1表示survivor0,survivor1;
老年代o表示old,永久代p表示permanent
程序运行以来供放生Minor GC(YGC,表示Yong GC)122次,总耗时0.392,发生Full GC(FGC,表示Full GC)6次,(FGCT)总耗时为0.666。
不同的统计维度(statOption)及输出说明
-class
| 列名 | 说明 |
|---|---|
| Loaded | 加载了的类的数量 |
| Bytes | 加载了的类的大小,单为Kb |
| Unloaded | 卸载了的类的数量 |
| Bytes | 卸载了的类的大小,单为Kb |
| Time | 花在类的加载及卸载的时间 |
-compiler
| 列名 | 说明 |
|---|---|
| Compiled | 编译任务执行的次数 |
| Failed | 编译任务执行失败的次数 |
| Invalid | 编译任务非法执行的次数 |
| Time | 执行编译花费的时间 |
| FailedType | 最后一次编译失败的编译类型 |
| FailedMethod | 最后一次编译失败的类名及方法名 |

-gc
| 列名 | 说明 |
|---|---|
| S0C | 新生代中Survivor space中S0当前容量的大小(KB) |
| S1C | 新生代中Survivor space中S1当前容量的大小(KB) |
| S0U | 新生代中Survivor space中S0容量使用的大小(KB) |
| S1U | 新生代中Survivor space中S1容量使用的大小(KB) |
| EC | Eden space当前容量的大小(KB) |
| EU | Eden space容量使用的大小(KB) |
| OC | Old space当前容量的大小(KB) |
| OU | Old space使用容量的大小(KB) |
| PC | Permanent space当前容量的大小(KB) |
| PU | Permanent space使用容量的大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| YGCT | 从应用程序启动到采样时 Young GC 所用的时间(秒) |
| FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
| FGCT | 从应用程序启动到采样时 Full GC 所用的时间(秒) |
| GCT | T从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC |

-gccapacity
| 列名 | 说明 |
|---|---|
| NGCMN | 新生代的最小容量大小(KB) |
| NGCMX | 新生代的最大容量大小(KB) |
| NGC | 当前新生代的容量大小(KB) |
| S0C | 当前新生代中survivor space 0的容量大小(KB) |
| S1C | 当前新生代中survivor space 1的容量大小(KB) |
| EC | Eden space当前容量的大小(KB) |
| OGCMN | 老生代的最小容量大小(KB) |
| OGCMX | 老生代的最大容量大小(KB) |
| OGC | 当前老生代的容量大小(KB) |
| OC | 当前老生代的空间容量大小(KB) |
| PGCMN | 持久代的最小容量大小(KB) |
| PGCMX | 持久代的最大容量大小(KB) |
| PGC | 当前持久代的容量大小(KB) |
| PC | 当前持久代的空间容量大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
JVM配置:-Xms10m -Xmx10m -Xss128k -XX:PermSize=10M -XX:MaxPermSize=10M
打印结果

-gccause
这个选项用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因,它比-gcutil会多出最后一次垃圾收集原因以及当前正在发生的垃圾收集的原因。
| 列名 | 说明 |
|---|---|
| LGCC | 最后一次垃圾收集的原因,可能为“unknown GCCause”、“System.gc()”等 |
| GCC | 当前垃圾收集的原因 |

-gcnew
| 列名 | 说明 |
|---|---|
| S0C | 当前新生代中survivor space 0的容量大小(KB) |
| S1C | 当前新生代中survivor space 1的容量大小(KB) |
| S0U | S0已经使用的大小(KB) |
| S1U | S1已经使用的大小(KB) |
| TT | Tenuring threshold,要了解这个参数,我们需要了解一点Java内存对象的结构,在Sun JVM中,(除了数组之外的)对象都有两个机器字(words)的头部。第一个字中包含这个对象的标示哈希码以及其他一些类似锁状态和等标识信息,第二个字中包含一个指向对象的类的引用,其中第二个字节就会被垃圾收集算法使用到。 在新生代中做垃圾收集的时候,每次复制一个对象后,将增加这个对象的收集计数,当一个对象在新生代中被复制了一定次数后,该算法即判定该对象是长周期的对象,把他移动到老生代,这个阈值叫着tenuring threshold。这个阈值用于表示某个/些在执行批定次数youngGC后还活着的对象,即使此时新生的的Survior没有满,也同样被认为是长周期对象,将会被移到老生代中。 |
| MTT | Maximum tenuring threshold,用于表示TT的最大值。 |
| DSS | Desired survivor size (KB).可以参与这里:http://blog.csdn.net/yangjun2/article/details/6542357 |
| EC | Eden space当前容量的大小(KB) |
| EU | Eden space已经使用的大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| YGCT | 从应用程序启动到采样时 Young GC 所用的时间(单位秒) |

-gcnewcapacity
| 列名 | 说明 |
|---|---|
| NGCMN | 新生代的最小容量大小(KB) |
| NGCMX | 新生代的最大容量大小(KB) |
| NGC | 当前新生代的容量大小(KB) |
| S0CMX | 新生代中SO的最大容量大小(KB) |
| S0C | 当前新生代中SO的容量大小(KB) |
| S1CMX | 新生代中S1的最大容量大小(KB) |
| S1C | 当前新生代中S1的容量大小(KB) |
| ECMX | 新生代中Eden的最大容量大小(KB) |
| EC | 当前新生代中Eden的容量大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
-gcold
| 列名 | 说明 |
|---|---|
| PC | 当前持久代容量的大小(KB) |
| PU | 持久代使用容量的大小(KB) |
| OC | 当前老年代容量的大小(KB) |
| OU | 老年代使用容量的大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
| FGCT | 从应用程序启动到采样时 Full GC 所用的时间(单位秒) |
| GCT | 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC |

-gcoldcapacity
| 列名 | 说明 |
|---|---|
| OGCMN | 老生代的最小容量大小(KB) |
| OGCMX | 老生代的最大容量大小(KB) |
| OGC | 当前老生代的容量大小(KB) |
| OC | 当前新生代的空间容量大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| FGC | 从应用程序启动到采样时发生 Full GC 的次数 |
| FGCT | 从应用程序启动到采样时 Full GC 所用的时间(单位秒) |
| GCT | 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC |
-gcpermcapacity
从应用程序启动到采样时发生 Full GC 的次数
| 列名 | 说明 |
|---|---|
| PGCMN | 持久代的最小容量大小(KB) |
| PGCMX | 持久代的最大容量大小(KB) |
| PGC | 当前持久代的容量大小(KB) |
| PC | 当前持久代的空间容量大小(KB) |
| YGC | 从应用程序启动到采样时发生 Young GC 的次数 |
| FGC | |
| FGCT | 从应用程序启动到采样时 Full GC 所用的时间(单位秒) |
| GCT | 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC |
-gcutil(这个经常用到)
| 列名 | 说明 |
|---|---|
| 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 | 从应用程序启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC |

-printcompilation
| 列名 | 说明 |
|---|---|
| Compiled | 编译任务执行的次数 |
| Size | 方法的字节码所占的字节数 |
| Type | 编译类型 |
| Method | 指定确定被编译方法的类名及方法名,类名中使名“/”而不是“.”做为命名分隔符,方法名是被指定的类中的方法,这两个字段的格式是由HotSpot中的“-XX:+PrintComplation”选项确定的。 |

二,JVM 自带命令行工具之JStat的更多相关文章
- 一,JVM 自带命令行工具之JPS
jps:虚拟机进程状况工具 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(main class,class()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID. jps命令格式: jps ...
- 四,JVM 自带命令行工具之JStack
jstack(stack trace for java) 命令 用于查看虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件).线程快照就是当前虚拟机内每一条线程正在执行的方 ...
- 三,JVM 自带命令行工具之JMap
jmap:java内存映像工具 jmap(Memory Map for java ) 命令用于生成堆转储快照(一般被称为headdump 或dump文件) jmap命令格式:jmap [option ...
- JVM总结之命令行工具
jps jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不象"pgrep java"或"ps ...
- JVM-JDK命令行工具
JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. ...
- Scrapy学习篇(二)之常用命令行工具
简介 Scrapy是通过Scrapy命令行工具进行控制的,包括创建新的项目,爬虫的启动,相关的设置,Scrapy提供了两种内置的命令,分别是全局命令和项目命令,顾名思义,全局命令就是在任意位置都可以执 ...
- jdk 自带命令行工具
jps工具 虚拟机进程状况工具 工具主要选项 jstat: 虚拟机统计信息监视工具 jinfo: Java配置信息工具 jinfo( Configuration Info for Java) 的作用是 ...
- 手机抓包xcode自带命令行工具配合wireshark实现
三.最佳方式:rvictl命令 优点:简单,而且可以抓所有网络接口的数据: 缺点:似乎没有,要求手机iOS5以上不算要求吧?如果说缺点,就是这个命令是Xcode的Command Line Tools ...
- 使用脚本+kafka自带命令行工具 统计数据写入kafka速率
思路 每隔一段时间(比如说10秒)统计一次某topic的所有partition的最大offset值之和,这便是该topic的message总数. 然后除以间隔时间就可以粗略但方便得出 某topic的数 ...
随机推荐
- Poj 1061 青蛙的约会(扩展欧几里得解线性同余式)
一.Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要 ...
- CentOS 7关闭firewalld启用iptables
在CentOS7中,有很多CentOS 6中的常用服务发生了变化. 其中iptables是其中比较大的一个.防火墙iptables被firewalld取代. 本文将介绍,如果采用systemctl关闭 ...
- Python:map()、reduce()、filter()的区别
文章转于:https://blog.csdn.net/goupper1991/article/details/49803355 原文博主:https://blog.csdn.net/goupper19 ...
- 【转载】ruby 中数组函数示例(1)(转)
函数名称 说明 示例 & 数组与,返回两数组的交集 [1,2] & [2,3] =>[2] * 复制数组n次 [1,2]*2 => [1,2,1, ...
- hadoop slf4j-api 1.6.x (or later) is incompatible with this binding
hadoop slf4j-api 1.6.x (or later) is incompatible with this binding 解决方法: 在POM文件最前面加入: <dependenc ...
- 28、cd-hit去除冗余序列
转载:http://blog.sina.com.cn/s/blog_670445240101nidy.html 网址:http://cd-hit.org :http://www.bioinformat ...
- URAL 2019 Pair: normal and paranormal (STL栈)
题意:在一个半圆内,有2*n个点,其中有大写字母和小写字母.其中你需要连接大写字母到小写字母,其中需要保证这些连接的线段之间没有相交. 如果能够实现,将大写字母对应的小写字母的序号按序输出. 析:我把 ...
- Java基础 -- 泛型之泛型参数
泛型机制常用的参数有3个: “?”代表任意类型.如果只指定了<?>,而没有extends,则默认是允许任意类. extends关键字声明了类型的上界,表示参数化的类型可能是所指定的类型,或 ...
- Sharepoint foundation2013独立安装教程
Sharepoint foundation2013安装教程 一,什么是sharepoint foundation2013 大家都知道Sharepoint是一个非常强大的企业级开发平台,它包含各种功能比 ...
- java线程基础知识----线程基础知识
不知道从什么时候开始,学习知识变成了一个短期记忆的过程,总是容易忘记自己当初学懂的知识(fuck!),不知道是自己没有经常使用还是当初理解的不够深入.今天准备再对java的线程进行一下系统的学习,希望 ...

