二,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的数 ...
随机推荐
- Python:内置函数makestrans()、translate()
转于:https://blog.csdn.net/u014351782/article/details/46740297 博主:夜-feng 一.makestrans() 格式: str.maketr ...
- Python:内置函数zip()
zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象. 这个可迭代对象可以使用循环的方式列出其元素 若多个可迭代对象的长度不一致,则所返回的 ...
- 一个有关Golang变量作用域的坑
转自:http://tonybai.com/2015/01/13/a-hole-about-variable-scope-in-golang/ 临近下班前编写和调试一段Golang代码,但运行结果始终 ...
- Ruby迭代器(Iterator)
简单的讲,一个迭代器就是一个能接受代码块的方法.当初为了进行迭代操作而设置了带块方法,现在很多时候仍然称它为迭带器. 可实际上,早期版本的 Ruby 将使用代码块的方法称为迭代器,因为它们就是被设计来 ...
- Loadrunner 监控 Linux (centos6.5)服务器系统资源
Loadrunner 监控 Linux 服务器系统资源,需要在被监控的服务器上启用 rstatd 进程但尝试启动时,爆炸了: [root@test1 rpc.rstatd-4.0.1]# rpc.rs ...
- 详解 javascript中offsetleft属性的用法(转)
详解 javascript中offsetleft属性的用法 转载 2015-11-11 投稿:mrr 我要评论 本章节通过代码实例介绍一下offsetleft属性的用法,需要的朋友可以做一 ...
- SSM框架集成Redis
SSM-Spring+SpringMVC+Mybatis框架相信大家都很熟悉了,但是有的时候需要频繁访问数据库中不变或者不经常改变的数据,就会加重数据库的负担,这时我们就会想起Redis Redis是 ...
- centos MAC 地址与报错eth0 unknown interface no such device
eth0 unknown interface no such device 出现这个原因是由于虚拟机直接COPY过来,MAC地址发生了变化,但eth0 里仍然记录着旧的MAC地址. 解决方法: vim ...
- 1.1 sql注入分类与详解
1.基于报错的 SQL 盲注------构造 payload 让信息通过错误提示回显出来 这里来讲一下报错注入的原理(floor型爆错注入): 0x01:报错过程: 1.rand()用于产生一 ...
- 【mysql 的 union 和unionall】
Mysql的联合查询命令UNION和UNION ALL,总结了使用语法和注意事项,以及学习例子和项目例子,需要的朋友可以参考下 一.UNION和UNION ALL的作用和语法 UNION 用于合... ...

