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 : 最大持有次数限制


  • 免责声明!

    本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



     
    粤ICP备18138465号  © 2018-2025 CODEPRJ.COM