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