• jstat命令详解


      • 摘要:用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。   Jstat是JDK自带的一个轻量级小工具。全称“JavaVirtualMachinestatisticsmonitoringtool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heapsize和垃圾
      • 用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。  
          
        Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。由于JVM内存设置较大,图中百分比变化不太明显  
          
        一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。  
          
        jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。  
          
        执行:cd $JAVA_HOME/bin中执行jstat,注意jstat后一定要跟参数。  
          
           
          
        jstat :对VM内存使用量进行监控。  
            jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。  
            jstat -class pid:显示加载class的数量,及所占空间等信息。  
            jstat -compiler pid:显示VM实时编译的数量等信息。  
            jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。  
            jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。  
            jstat -gcnew pid:new对象的信息。  
            jstat -gcnewcapacity pid:new对象的信息及其占用量。  
            jstat -gcold pid:old对象的信息。  
            jstat -gcoldcapacity pid:old对象的信息及其占用量。  
            jstat -gcpermcapacity pid: perm对象的信息及其占用量。  
            jstat -util pid:统计gc信息统计。  
            jstat -printcompilation pid:当前VM执行的信息。  
            除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题

        jstat命令详解

               1. jstat -gc pid

                    可以显示gc的信息,查看gc的次数,及时间。

                    其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

              2.jstat -gccapacity pid

                    可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,

                    如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,

                    PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。

                    其他的可以根据这个类推, OC是old内纯的占用量。

             3.jstat -gcutil pid

                    统计gc信息统计。

             4.jstat -gcnew pid

                   年轻代对象的信息。

             5.jstat -gcnewcapacity pid

                   年轻代对象的信息及其占用量。

             6.jstat -gcold pid

                  old代对象的信息。

             7.stat -gcoldcapacity pid

                  old代对象的信息及其占用量。

             8.jstat -gcpermcapacity pid

                  perm对象的信息及其占用量。

             9.jstat -class pid

                  显示加载class的数量,及所占空间等信息。
             10.jstat -compiler pid

                  显示VM实时编译的数量等信息。

             11.stat -printcompilation pid

                  当前VM执行的信息。

                一些术语的中文解释:

                 S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
                 S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
                 S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
                 S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
                   EC:年轻代中Eden(伊甸园)的容量 (字节)
                   EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
                   OC:Old代的容量 (字节)
                   OU:Old代目前已使用空间 (字节)
                   PC:Perm(持久代)的容量 (字节)
                   PU:Perm(持久代)目前已使用空间 (字节)
                 YGC:从应用程序启动到采样时年轻代中gc次数
               YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
                 FGC:从应用程序启动到采样时old代(全gc)gc次数
               FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
                 GCT:从应用程序启动到采样时gc用的总时间(s)

            NGCMN:年轻代(young)中初始化(最小)的大小 (字节)

            NGCMX:年轻代(young)的最大容量 (字节)

                NGC:年轻代(young)中当前的容量 (字节)

           OGCMN:old代中初始化(最小)的大小 (字节) 

           OGCMX:old代的最大容量 (字节)

               OGC:old代当前新生成的容量 (字节)

           PGCMN:perm代中初始化(最小)的大小 (字节) 

           PGCMX:perm代的最大容量 (字节)   

               PGC:perm代当前新生成的容量 (字节)

                  S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

                 S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

                   E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

                   O:old代已使用的占当前容量百分比

                   P:perm代已使用的占当前容量百分比

          S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)

         S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)

            ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)

               DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)

                  TT: 持有次数限制

               MTT : 最大持有次数限制

  • 相关阅读:
    JS中的constructor、prototype、__proto__的要点理解
    call、apply、bind的源码模拟
    js中的继承方式
    IPV6
    java8 instant localDateTime
    FileInputFormat 的实现之TextInputFormat
    Git服务器,仓库的hook监控
    Linux 开机启动图形界面,shell界面
    java操作Hbase
    Linux 下安装 storm
  • 原文地址:https://www.cnblogs.com/bbox/p/9750361.html
Copyright © 2020-2023  润新知