JDK的命令行工具种类 (壹) jps、jstat

jps失效管理

由此我们得出, 上述全部操作都是基于/hsperfdata_{username}/pid文件来开始展览的。所以如当前用户并未有权力写hsperfdata_{username}目录或磁盘已满时、或在linux情形下/tmp有的时候文件夹被定期义务清理掉,
都会导致不能创设/hsperfdata_{username}/pid文件,
那样就形成了jps、jstack、jmap那个类似的指令出现失效的情事。具体的失灵细节在本篇不做多解释,
读者可机关参谋Java命令学习种类(一)中的jps失效管理小节。

     
 protocol – 要是protocol及hostname都未有一点名,那表示的是与当前意况相关的本土协议,假使钦赐了hostname却从未点名protocol,那么protocol的暗许正是rmi。

参照他事他说加以考察资料

《深切掌握Java虚拟机》

java程序品质解析之thread dump和heap
dump

Java命令学习类别(零)——常见命令及Java Dump介绍-霍利斯Chuang’s
Blo…

Java命令学习种类(一)——Jps-霍利斯Chuang’s
Blog

Java命令学习体系(肆)——jstat-霍利斯Chuang’s
Blog

       hostname – 服务器的IP只怕名称,未有一点点名则表示本机。

jstat: 虚拟机计算信息监视工具

jstat是用于监视虚拟机各样运转情形音信的命令行工具。它可以来得本地或远程虚拟机进程中的类装载、内部存款和储蓄器、垃圾收罗、JIT编写翻译等运营数据,在并没有GUI图形的服务器上,它是运转期定位虚拟机质量难题的首选工具。

jstat命令格式: jstat [option vmid
[interval [s|ms] [count] ] ],
下边是参数描述:

  • vmid  —虚拟机进程的pid。假诺是本地虚拟机进度, 则vmid和lvmid(即地面虚拟机进度pid)是壹律的;
    尽管是长距离虚拟机进度, 则vmid的格式是: [protocol:] [//] lvmid
    [@hostname[:port]/servername]
  • interval  —查询间隔, 单位为秒或飞秒

  • count  —查询次数

即使同不常候省略interval和count,
阐明只询问一遍。若是要求每500纳秒查询一遍经过1674四污染源搜聚处境,1共查询11遍,则下令行应输入:jstat -gc 16744 500 10

图片 1采取option代表用户愿意查询的虚拟机音信,首要分为三类:类装载、垃圾采集和平运动行期编写翻译情形,具体选项及效益如下表:

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

上边大家就对表格中的一些取舍参数做个示范,
先别忘了随意编写个java程序跑起来, 然后输入jstat命令(运用的运行条件是 JDK 一.八):

-class (监视类装载、卸载数量、总空间以及开销的光阴)

C:\Users\liqingshan>jstat -class 16744
Loaded  Bytes  Unloaded  Bytes     Time
   430   880.6        0     0.0       0.05
  • Loaded : 装载的类的数目
  • Bytes : 装载类所占有的字节数
  • Unloaded : 卸载类的数量
  • Bytes : 卸载类的字节数
  • Time : 装载和卸载类所消费的流年

-compiler(输出JIT编写翻译过的情势数量耗费时间等)

C:\Users\liqingshan>jstat -compiler 16744
Compiled Failed Invalid   Time   FailedType FailedMethod
     107      0       0     0.12          0
  • Compiled : 编写翻译职分奉行多少
  • Failed : 编写翻译职分推行停业数量
  • Invalid : 编写翻译职责试行失效数量
  • Time : 编写翻译职责消耗费时间间
  • FailedType : 最终一个编写翻译战败职务的项目
  • FailedMethod : 最终一个编写翻译失败任务所在的类及方法

-gc(垃圾回收堆的行事总结,常用命令)

C:\Users\liqingshan>jstat -gc 16744
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
512.0  512.0   0.0    64.0  24064.0  18288.8   87552.0     764.1    4864.0 2709.6 512.0  294.8     711    0.234   0      0.000    0.234
  • S0C : 新生代中第二个suriPhoner的体量(字节)
  • S一C : 新生代中第三个sur红米r的容积(字节)
  • S0U :
    新生代中第二个surHTCr近来已利用空间 (字节) 
  • S1C :
    新生代中第二个sur摩托罗拉r近些日子已选择空间 (字节)
  • EC : 新生代中艾登的体量 (字节)
  • EU : 新生代中艾登近些日子已选取空间
    (字节)
  • OC : Old代的体积 (字节)
  • OU : Old代近日已接纳空间 (字节)
  • MC : 方法区大小
  • MU : 方法区使用大小
  • CCSC
    : 压缩类空间大小
  • CCSU
    : 压缩类空间利用大小
  • YGC :
    新生代垃圾堆回收次数
  • YGCT :
    新生代垃圾回收时间
  • FGC :
    老时期垃圾回收次数
  • FGCT :
    老时代垃圾回收时间
  • GCT :
    垃圾回收总消耗费时间

-gccapacity  (同-gc,还有大概会输出Java堆各区域采纳到的最大、最小空间)

C:\Users\liqingshan>jstat -gccapacity 16744
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC
 43520.0 689152.0  30720.0  512.0  512.0  24064.0    87552.0  1379328.0    87552.0    87552.0      0.0 1056768.0   4864.0      0.0 1048576.0    512.0    884     0
  • NGCMN :新生代最小容积
  • NGCMX :新生代最大体积
  • NGC :当前新生代容积
  • S0C :第3个幸存区大小
  • S壹C :第一个幸存区的轻重缓急
  • EC :伊甸园区的分寸
  • OGCMN :老时代最小体积
  • OGCMX :老时期最大体积
  • OGC :当前老时期大小
  • OC  :  当前老时代大小
  • MCMN :  最小元数据容积
  • MCMX :最大元数据容积
  • MC :当前元数据空间尺寸
  • CCSMN :最小压缩类空间尺寸
  • CCSMX :最大压缩类空间尺寸
  • CCSC :当前压缩类空间尺寸
  • YGC :年轻代gc次数
  • FGC :老年代GC次数

-gcnew(计算新生代行为)

C:\Users\liqingshan>jstat -gcnew 16744
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
 512.0  512.0    0.0   64.0  1  15  512.0  24064.0   5294.2    947    0.279
  • S0C :第多个幸存区大小
  • S1C :第二个幸存区的轻重
  • S0U :第3个幸存区的运用大小
  • S一U :第四个幸存区的选用大小
  • TT :  对象在新生代存活的次数
  • MTT :  对象在新生代存活的最大次数
  • DSS :  期望的幸存区大小
  • EC :伊甸园区的尺寸
  • EU :伊甸园区的选取大小
  • YGC :年轻代垃圾回收次数
  • YGCT :年轻代垃圾回收消耗费时间间

-gcnewcapacity(新生代与其相应的内部存款和储蓄器空间的总结)

C:\Users\liqingshan>jstat -gcnewcapacity 16744
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC
   43520.0   689152.0    30720.0 229376.0    512.0 229376.0    512.0   688128.0    24064.0  1054     0
  • NGCMN :新生代最小体积
  • NGCMX :新生代最大体量
  • NGC :当前新生代体量
  • S0CMX :最大幸存1区大小
  • S0C :当前幸存一区大大小小
  • S1CMX :最大幸存2区大小
  • S一C :当前幸存2区大小
  • ECMX :最大伊甸园区大小
  • EC :当前伊甸园区大小
  • YGC :年轻代垃圾回收次数
  • FGC :老时代回收次数

-gcold(总结老时期行为)

C:\Users\liqingshan>jstat -gcold 16744
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT
  4864.0   2709.6    512.0    294.8     87552.0       764.1   1097     0    0.000    0.309
  • MC :方法区大小
  • MU :方法区使用大小
  • CCSC :  压缩类空间尺寸
  • CCSU :  压缩类空间应用大小
  • OC :老时期大小
  • OU :老时期使用大小
  • YGC :年轻代垃圾回收次数
  • FGC :老时期垃圾回收次数
  • FGCT :老时代垃圾回收消耗费时间间
  • GCT :垃圾回收消耗总时间

-gcoldcapacity(老时期与其相应的内部存款和储蓄器空间的总结)

C:\Users\liqingshan>jstat -gcoldcapacity 16744
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
    87552.0   1379328.0     87552.0     87552.0  1120     0    0.000    0.313
  • OGCMN :老时期最小体积
  • OGCMX :老时代最大容量
  • OGC :当前老时期大小
  • OC :老时期大小
  • YGC :年轻代垃圾回收次数
  • FGC :老时期垃圾回收次数
  • FGCT :老时期垃圾回收消耗费时间间
  • GCT :垃圾回收消耗总时间

-gcmetacapacity   (元数据空间计算,
在jdk之前对应长久代区域)

C:\Users\liqingshan>jstat -gcmetacapacity 16744
   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT
       0.0  1056768.0     4864.0        0.0  1048576.0      512.0  1170     0    0.000    0.322
  • MCMN :  最小元数据体量
  • MCMX :最大元数据容积
  • MC :当前元数据空间大小
  • CCSMN :最小压缩类空间尺寸
  • CCSMX :最大压缩类空间尺寸
  • CCSC :当前压缩类空间尺寸
  • YGC :年轻代垃圾回收次数
  • FGC :老时期垃圾回收次数
  • FGCT :老时期垃圾回收消耗费时间间
  • GCT :垃圾回收消耗总时间

-gcutil(同-gc,输出的是已选用空间占总空间的百分比)

C:\Users\liqingshan>jstat -gcutil 16744
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00   6.25  62.00   0.87  55.71  57.57   1189    0.326     0    0.000    0.326
  • S0 :幸存一区当下利用比例
  • S1 :幸存二区当前采Nabi例
  • E :伊甸园区使用比例
  • O :老时期使用比例
  • M :元数据区使用比例
  • CCS :压缩使用比例
  • YGC :新生代垃圾回收次数
  • YGCT :  新生代垃圾回收消耗费时间间
  • FGC :老时期垃圾回收次数
  • FGCT :老时期垃圾回收消耗费时间间
  • GCT :垃圾回收消耗总时间

-printcompilation(hotspot编写翻译方法总结)

C:\Users\liqingshan>jstat -printcompilation 16744
Compiled  Size  Type Method
     107    382    1 JpsDemo main
  • Compiled :被编写翻译方法的多寡
  • Size :被编写翻译方法字节码的字节数
  • Type :编写翻译类型
  • Method :编写翻译方法的类名和方法名

    命令格式:jsp [-help]

概述

在大家实行故障定位和品质深入分析时, 能够行使Java
Dump(也叫Dump文件)来扶持排查难点,
它记录了JVM运营时期的内部存款和储蓄器占用和线程实施等情状。在那之中Heap
Dump文件是贰进制格式,
它保存了某一随时的系统音信、虚拟机属性、完整的线程Dump、全体类和指标的境况等,
是指定期刻的java货仓的快速照相; Thread Dump文件是纯文本格式,
它保存了java应用程序各线程在某不平日时的运作地方。

在%JAVA_HOME%\lib目录下,
有局地诸如jps.exe、jstack.exe、jmap.exe的命令行工具,
它们重若是用来监视虚拟机和故障管理的。

名称 主要作用
jps 显示当前系统的java进程和id号
jstat 监视虚拟机各种运行状态信息, 如进程中的类装载、内存、垃圾收集、JIT编译等运行参数
jinfo 实时查看和调整虚拟机各项参数
jmap 生成虚拟机的内存转储快照(heap dump文件)
jhat 用于分析heap dump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果
jstack 生成虚拟机指定时刻的线程快照(thread dump文件)

2、命令格式
  

jps: 虚拟机进程情形工具

作者们先本身编写一个类:

import java.util.Arrays;

public class JpsDemo {
    public static void main(String[] args) {
        while(true){
            System.out.println(Arrays.toString(args));
            System.out.println(1);
        }
    }
}

dos命令行下, 使用javac命令编写翻译、java命令运维, 并给main()方法传递参数 88
6陆。

jps -help  支持指令

图片 2

jps -q  只显示pid,
不展现class名称、jar名称和和传递给main 方法的参数

图片 3

jps -m  展现pid, class名称和传递给main
方法的参数

图片 4

jps -l  展现应用程序主类的完整package名 恐怕应用程序的jar文件完整路线名

图片 5

jps -v  显示传递给JVM的参数

图片 6jps、jstack这个指令都以根据贰个兑现机制: java应用程序在运转时,
会在java.io.tmpdir内定的目录下,
生成二个好像于hsperfdata_{username}的文书夹,
在这么些文件夹下会有多少个公文, 文件名便是java进度的pid,
JVM运行的局地参数都能够由此分析那多少个文本得到。举个例子在上头的Jps德姆o类运营后,
在小编自个儿计算机上变化的有时文件夹地点: C:\Users\liqingshan\AppData\Local\Temp\hsperfdata_qingshan, 如下所示, 文件名称 5144 对应JpsDemo这些进程的pid。

图片 7

    参数表达:

       port – 远程rmi的端口,借使未有一点名则默感觉109玖。

    -v输出虚拟机进度运维时候的JVM参数

   
-V输出通过标识的文书传递给JVM的参数(.hotspotrc文件,也许是透过参数-XX:Flags=<filename>钦命的公文)

    -q只输入LVMID

一、简介

                 jps [-q] [-mlvV] [<hostid>]

     
 <hostid>钦定指标服务器,它的语法如是:[protocol:][[//]hostname][:port][/servername]

3、参数表达

    jps(JVM Process Status
Tool)是虚拟机进程处境工具:能够列出正在周转的虚拟机进程,展现虚拟机正在实践的main()函数,及那一个进程的ID(LVMID,Local
Virsul Machine
 ID),当显示的是本土虚拟机平时的时候,则该值与ps命令中显示的操作系统进度编号相等。查询进度的时候,不必要输入进程号,故平常用来JVM排查的进口。其原理是java程序在运维之后,会在java.io.tmpdir所内定的一时文件夹里面,生成壹个近乎

    -l输出主类的全称,若实践的是jar包,则是jar的完整路线

        ServerName – 注册到兰德奥迪Q5MI注册中央中的jstatd的称号。

四、服务器标记

    -m输出传递给main方法的参数,借使是内嵌的jvm则输出空

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图