1、概述

  熟悉java开发的人应该都知道在jdk的bin目录下有许多的工具,这些工具主要用于监视虚拟机和故障处理。这些故障处理工具被Sun公司称作为“礼物”附赠给JDK的使用者,并在软件的使用说明中把它们生命为“没有技术支持并且是实验性质的”的产品,但事实上,这些工具都非常稳定并且功能强大,能在处理应用程序性能问题、定位故障时发挥很大的作用。

2、命令行工具

2.1、jps:虚拟机进程状况工具

  jps(JVM process Status Tool)命令虽然比较单一,确实我们平常使用频率最高的JDK命令行工具,它的作用是列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在类)名称以及这些进程的本地虚拟机唯一ID

  命令格式:

    jps   [option] [hostid]

jps工具主要选项
选项 作用
-q 只输出LVMID,省略主类的名称
-m  输出虚拟机进程启动时传递给主类main()函数的参数
-l  输出主类的全名,如果进程执行的是jar包,输出jar路径
-v  输出虚拟机进程启动是的jvm参数

2.2、jstat:虚拟机统计信息监视工具

  jstat(JVM statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类加载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,值提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具

命令格式:

  jstat [option vmid [interval [s|ms]  [count]]]

  interval:查询时间间隔

  count:查询次数

 如果省略interval和count 参数,则默认只查询一次。假设需要每250ms查询一次进程32587的垃圾收集情况,一共查询20次,那么命令应该是:

  jstat -gc 32587 2590 20

jstat工具主要选项
选项  作用
-class  监视类装载、卸载数量、总空间以及所耗费的时间
-gc  监视java堆状况,包括Eden区、两个Supervisor区、老年代、永久代等的容量、已用空间、gc时间合计等信息
-gccapacity  监视内容与-gc基本一致,但输出主要关注Java堆各个区域使用到的最大、最小空间
-gcutil  监视内容与-gc基本一致,但输出主要关注已使用空间占总空间的百分比
-gccause  与-gcutil功能一样,但是会额外输出GC产生的原因
-gcnew  监视新生代GC情况
-gcnewcapacity  监视内容与-gcnew基本一致,但输出主要关注使用到的最大、最小空间
-gcold  监视老年代GC情况
-gcoldcapacity  监视内容与-gcold基本一致,但输出主要关注使用到的最大、最小空间
-gcmetacapacity  输出永久代使用的最大、最小空间
-compiler  输出JIT编译器编译过的方法、耗时等信息
-printcompilation  输出已经被JIT编译的方法

各工具选项输出内容详解  

-class Option:

列名  描述
Loaded  加载class的数量
Bytes  所占用空间大小
unloaded  未加载class的数量
Bytes  未加载占用空间
Time  执行类加载和卸载操作的时间。

-gc Option:

列名  描述
S0C  Supervisor0当前的容量(KB)
S1C  Supervisor1当前的容量(KB)
S0U  Survivor space 0 使用的容量(KB)
S1U  Survivor space 1 使用的容量(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 generation垃圾回收的次数
YGCT  young generation垃圾回收的时间
FGC  full GC次数
FGCT  full GC时间
GCT  总的垃圾回收时间

            

  

    

-gccapacity Option

列名  描述
NGCMN  新生代最小容量(KB)
NGCMX  新生代最大容量(KB)
NGC  新生代当前容量(KB)
S0C  Supervisor0当前的容量(KB)
S1C  Supervisor1当前的容量(KB)
EC  Eden space 当前的容量(KB)
OGCMN  老年代最小容量(KB)
OGCMX  老年代最大容量(KB)
OGC  老年代当前容量(KB)
OC  老年区当前容量(KB)
PGCMN  永久代最小容量(KB)
PGCMX  永久代最大容量(KB)
PGC  当前永久代容量(KB)
PC  当前永久区容量(KB)
YGC  Young generation 垃圾回收的次数
FGC  Full GC次数

-gcutil Option

列名  描述
S0  S0区使用百分比
S1  S1区使用百分比
E  Eden 区使用百分比
O  Old区使用百分比
P  Permanent  区使用百分比
YGC  young generation垃圾回收次数
YGCT  young generation垃圾回收时间
FGC  full GC次数
FGCT  full GC时间
GCT  总共的垃圾回收时间

-gccause Option

列名  描述
LGCC  上一次产生gc的原因
GCC  当前gc原因

-gcnew

列名  描述
S0C  survivor space 0当前容量(KB)
S1C  survivor space 1当前容量(KB)
S0U  survivor space 0使用容量(KB)
S1U  survivor space 1使用容量(KB)
TT  阀值, 用于控制对象在新生代存活的最大次数
MTT  最大阀值
DSS  预期的survivor 大小(KB)
EC  当前Eden区的容量(KB)
EU  Eden区使用的容量(KB)
YGC  young generation垃圾回收次数
YGCT  young generation垃圾回收时间

-gcnewcapacity

列名  描述
NGCMN             new generation最小容量(KB)
NGCMX      new generation最大容量(KB)
NGC      new generation当前容量(KB)
S0CMX  survivor space 0最大容量(KB)
S0C  survivor space 0当前容量(KB)
S1CMX  survivor space 1最大容量(KB)
S1C  survivor space 1当前容量(KB)
ECMX  eden space 最大容量(KB)
EC  eden space 当前容量(KB)
YGC  young generation GC次数
FGC  Full GC次数

-gcold

列名  描述
MC  方法区容量(KB)
MU  方法区当前使用容量(KB)
CCSC  压缩类空间容量(KB)
CCSU  压缩类空间当前使用容量(KB)
OC  old space当前容量(KB)
OU  old space使用容量(KB)
YGC  young generation GC 次数
FGC  full GC次数
FGCT   full GC时间
GCT  总的gc时间

-gcoldcapacity

列名  描述
OGCMN  old generation最小容量(KB)
OGCMX  old generation最大容量(KB)
OGC  old generation当前容量(KB)
OC  old space容量(KB)
YGC  young generation GC次数
FGC   full GC次数
FGCT   full GC时间
GCT  总的gc时间

-gcmetacapacity

列名  描述
MCMN  最小元数据容量(KB)
MCMX  最大元数据容量(KB)
MC  当前元数据空间大小(KB)
CCSMN  最小压缩类空间大小(KB)
CCSMX  最大压缩类空间大小(KB)
CCSC  当前压缩类空间大小(KB)
YGC  young generation GC次数
FGC   full GC次数
FGCT  full GC时间
GCT  总的gc时间

-compiler

列名  描述
Compiled  编译任务执行次数
Failed  编译任务执行失败次数
Invalid  编译任务执行失效数量
Time  编译任务消耗时间
FailedType  最后一个编译失败任务的类型
FailedMethod  最后一个编译失败任务所在的类及方法

-printcompilation

列名  描述
Compiled  最近编译方法的数量
Size  最近编译方法的容量(KB)
Type  最近编译方法的编译类型
Method  方法名标识

jdk命令行工具(一)的更多相关文章

  1. JVM-JDK命令行工具

    JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. ...

  2. JVM性能监控工具(一)-jdk命令行工具

    转载:http://blog.csdn.net/top_code/article/details/51456186 当系统出bug需要定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处 ...

  3. JVM调优前戏之JDK命令行工具---jhat

    在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下 ...

  4. JVM调优前戏之JDK命令行工具---jstack

    在JDK的命令行中,一般开发人员最耳熟能详的肯定就是java,javac,javap等常用命令,不过在jdk/bin下还有许多其他的命令行工具,它们被用来监测JVM运行时的状态,下面我们来详细解读一下 ...

  5. Java之jdk命令行工具详解

    JPS---虚拟机进程状况工具 常用的参数: -l 输出Java应用程序的main class的完整包 -q 仅显示pid,不显示其它任何相关信息 -m 输出传递给main方法的参数 -v 输出传递给 ...

  6. JDK命令行工具

    jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数 jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapd ...

  7. jdk命令行工具系列

    虚拟机堆转储快照分析工具使用jmap等方法生成java的堆文件后jhat:虚拟机堆转储快照分析工具 导出程序执行的堆信息 jps jps -l jmap -dump:format=b,file=D:/ ...

  8. jdk命令行工具:jstat与jmap

    转自文章:http://blog.csdn.net/gzh0222/article/details/8538727 C:\Users\Administrator\Desktop>jstat -g ...

  9. JDK的命令行工具

    Jcmd:综合工具 jcmd -l  列出当前运行的所有虚拟机 参数-l表示列出所有java虚拟机,针对每一个虚拟机,可以使用help命令列出该虚拟机支持的所有命令 jcmd [pid] help j ...

随机推荐

  1. Golang开发环境搭建-Vim篇

    一.一个干净的环境 找个干净的基础环境,方便确认每个搭建步骤后的效果: Ubuntu 14.04 x86_64 vim version 7.4.52 go version go1.4beta1 lin ...

  2. MD5加密算法原理及其应用

    MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆:所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后 ...

  3. 发现ramnit样本一枚

    https://files.cnblogs.com/files/yfish/DesktopLayer.rar

  4. exe怎么找main函数

    先说DEBUG版本的命令行EXE main函数有两种,第一种是int main(),第二种是int main(int argc,char* argv[]) 不管哪种只要查找j___p___argc就能 ...

  5. [SoapUI]获取Project,Test Suite,Test Case各个级别参数的值

    String testResultPath = testRunner.testCase.testSuite.project.getPropertyValue( "testResultPath ...

  6. TabHost tab项单击事件

    TabHost 选项发生变化时会触发OnTabChangedListener事件,但是如果当前已经选中第一项,再次单击该项时,OnTabChangedListener不会触发该事件,所以再次单击选中t ...

  7. kubernetes多节点的pod挂载同一个cephfs目录

    一.安装cephfs 方法一: 直接进入deploy目录,执行: ceph-deploy --overwrite-conf mds create ceph01:mds-daemon- 上面的ceph0 ...

  8. Qracle 11g 插图安装

    1.下载两个包 然后把包二的内容放入包一里 2.管理员身份运行setup 3.选择去掉复选框 4.下一步,然后选择是 5.选择第一项,然后选择下一步 6.个人使用选桌面类 7.不要放在C盘中 8.设置 ...

  9. 第二周leetcode

    4/4 这周莫名得忙,一天是做编译,一天是做模式识别作业,(一天刷魔兽皮肤),周末玩了两天,总的来说还是松懈了,大概只做了两天的leetcode,刷了10道题,羞愧羞愧. 决定每次把代码附上在这个总结 ...

  10. Android-XML与JSON的理解-JSON的数据格式

    据我了解,在多年以前浏览器客户端和服务器它们的通讯数据交互格式是XML, 使用XML来规定数据格式可读性确实非常强,XML的魅力确实很大,也很成熟,但是也有不足之处,就是在网络传输的时候对流量要求特别 ...