JVM學習之jstat使用方法


Jstat是JDK自帶的一個輕量級工具,主要用JVM內建的指令對java應用程序的資源和性能進行實時的監控。

基本語法

  jstat <option> [-t] [-h] <pid>  <interval> <count>

  參數解釋:

  • option   可以從下面參數中選擇
    • -class                 顯示ClassLoad的相關信息;
    • -compiler           顯示JIT編譯的相關信息;
    • -gc                     顯示和gc相關的堆信息;
    • -gccapacity     顯示各個代的容量以及使用情況;
    • -gccause             顯示垃圾回收的相關信息(通-gcutil),同時顯示最后一次或當前正在發生的垃圾回收的誘因;
    • -gcnew               顯示新生代信息;
    • -gcnewcapacity  顯示新生代大小和使用情況;
    • -gcold                 顯示老年代和永久代的信息;
    • -gcoldcapacity    顯示老年代的大小;
    • -gcpermcapacity 顯示永久代的大小;
    • -gcutil             顯示垃圾收集信息;   
    • -printcompilation輸出JIT編譯的方法信息;
  • -t         可以在打印的列加上Timestamp列,用於顯示系統運行的時間
  • -h     可以在周期性數據數據的時候,可以在指定輸出多少行以后輸出一次表頭
  • interval 執行每次的間隔時間,單位為毫秒
  • count   用於指定輸出多少次記錄,缺省則會一直打印

  使用說明

  首先我們 使用linux命令 ps -ef|grep resin 查看我要監視進程的pid 23814

  -

  1、-classjstat -class pid 1000 5 查看pid為23814的ClassLoad相關信息,每秒鍾打印一次,總共打印5次)

  

  • Loaded 加載類的數量
  • Bytes 加載類合計大小
  • Unloaded 卸載類的數量
  • Bytes 卸載類合計大小
  • Time 表示加載和卸載類總共的耗時

  加載了9276個類,總大小為18045.9byte 卸載類0個,總大小為0byte,卸載和加載總耗時9.24ms

  2、-compilerJstat -cpmpiler pid

  

  • Compiled 表示編譯任務執行的次數
  • Failed 表示編譯失敗的次數
  • Invalid 表示編譯不可用的次數
  • Time 表示編譯的總耗時
  • FailedType 表示最后一次編譯的類型
  • FailedMethod 表示最后一次編譯失敗的類名和方法名

  3、-gc (jstat -gc pid 1000 5 )

  

  • S0C: Survivor0(幸存區0)大小(KB)
  • S1C: Survivor1(幸存區1)1大小(KB)
  • S0U: Survivor0(幸存區0)已使用大小(KB)
  • S1U: Survivor1(幸存區1)已使用大小(KB)
  • EC  : Eden(伊甸區)大小(KB)
  • EU  : Eden(伊甸區)已使用大小(KB)
  • OC :老年代大小(KB)
  • OU : 老年代已使用大小(KB)
  • PC : Perm永久代大小(KB)
  • PU : Perm永久代已使用大小(KB)
  • YGC:新生代GC個數
  • YGCT:新生代GC的耗時(秒)
  • FGC  :Full GC次數
  • FGCT:Full GC耗時(秒)
  • GCT :GC總耗時(秒) 

  4、-gccapacity(jstat -gccapacity pid:顯示各個代的容量的信息)

  

  • NGCMN:新生代最小值(KB)
  • NGVMX:新生代最大值(KB)
  • NGC:當前新生代大小(KB)
  • S0C:同上
  • S1C:同上
  • EC:同上
  • OGCMN:老年代最小值(KB)
  • OGCMX:老年代最大值(KB)
  • OGC:當前老年代大小(KB)
  • OC:同上
  • PGCMN:永久代最小值(KB)
  • PGCMX:永久代最大值(KB)
  • PGC:當前永久代大小(KB)
  • PC:同上
  • YGC:同上
  • FGC:同上

 5、-gccause(jstat -gccause pid:顯示最近一次GC的原因)

  

  • LGCC:上一次GC的原因,是G1垃圾回收器回收
  • GCC :當前GC的原因

 6、-gcnew (jstat -gcnew pid:顯示新生代的詳細信息)

  

  • TT:新生代到老年代的年齡;
  • MTT:新生代到老年代的最大年齡;
  • DSS:所需的survivor的大小;

  7、-gcnewcapacity(jstat -gcnewcapacity pid:輸出新生代各個區的詳細信息)

  

  • S0CMX:S0最大空間大小(KB)
  • S1CMX:S1最大空間大小(KB)
  • ECMX:Eden最大空間大小(KB)
  • NGCMX:年輕代最大空間大小(KB)

  8、-gcold(jstat -gcold pid:顯示老年代GC的詳細情況)

  

 9、-gcoldcapacity(jstat -gcoldcapacitp pid:輸出老年代的詳細信息)

  

 10、-gcutil(jstat -gcutil pid:查看每個代區域使用的百分比情況)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM