jvm性能監控(2)–JVM的監控工具jstat

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

 

openjdk沒有jstat,jps等命令解決辦法

 執行如下命令便可:yum install java-1.7.0-openjdk-devel -y

 基本語法linux

  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 23814spa

一、-classjstat -class pid 1000 5 查看pid爲23814的ClassLoad相關信息,每秒鐘打印一次,總共打印5次)對象

 

 

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

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

 

二、-compilerJstat -cpmpiler pid)進程

  

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

 三、-gc (jstat -gc pid 1000 5 )內存

  

 

* S0C:第一個倖存區的大小
* S1C:第二個倖存區的大小
* S0U:第一個倖存區的使用大小
* S1U:第二個倖存區的使用大小
* EC:伊甸園區的大小
* EU:伊甸園區的使用大小
* OC:老年代大小
* OU:老年代使用大小
* MC:方法區大小
* MU:方法區使用大小
* CCSC:壓縮類空間大小
* CCSU:壓縮類空間使用大小
* YGC:年輕代垃圾回收次數
* YGCT:年輕代垃圾回收消耗時間
* FGC:老年代垃圾回收次數
* FGCT:老年代垃圾回收消耗時間
* GCT:垃圾回收消耗總時間

 

 

 四、堆內存統計  -gccapacity(jstat -gccapacity pid:顯示各個代的容量的信息) 
ci

  

 

 

  • 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:同上

 五、-gccause(jstat -gccause pid:顯示最近一次GC的緣由)

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

 

6)新生代垃圾回收統計 jstat -gcnew pid
* S0C:第一個倖存區大小
* S1C:第二個倖存區的大小
* S0U:第一個倖存區的使用大小
* S1U:第二個倖存區的使用大小
* TT:對象在新生代存活的次數
* MTT:對象在新生代存活的最大次數
* DSS:指望的倖存區大小
* EC:伊甸園區的大小
* EU:伊甸園區的使用大小
* YGC:年輕代垃圾回收次數
* YGCT:年輕代垃圾回收消耗時間
 
6)新生代內存統計
* NGCMN:新生代最小容量
* NGCMX:新生代最大容量
* NGC:當前新生代容量
* S0CMX:最大幸存1區大小
* S0C:當前倖存1區大小
* S1CMX:最大幸存2區大小
* S1C:當前倖存2區大小
* ECMX:最大伊甸園區大小
* EC:當前伊甸園區大小
* YGC:年輕代垃圾回收次數
* FGC:老年代回收次數

 

7)老年代垃圾回收統計
* MC:方法區大小
* MU:方法區使用大小
* CCSC:壓縮類空間大小
* CCSU:壓縮類空間使用大小
* OC:老年代大小
* OU:老年代使用大小
* YGC:年輕代垃圾回收次數
* FGC:老年代垃圾回收次數
* FGCT:老年代垃圾回收消耗時間
* GCT:垃圾回收消耗總時間
 
8)老年代內存統計
* OGCMN:老年代最小容量
* OGCMX:老年代最大容量
* OGC:當前老年代大小
* OC:老年代大小
* YGC:年輕代垃圾回收次數
* FGC:老年代垃圾回收次數
* FGCT:老年代垃圾回收消耗時間
* GCT:垃圾回收消耗總時間
 
9)元數據空間統計
* MCMN: 最小元數據容量
* MCMX:最大元數據容量
* MC:當前元數據空間大小
* CCSMN:最小壓縮類空間大小
* CCSMX:最大壓縮類空間大小
* CCSC:當前壓縮類空間大小
* YGC:年輕代垃圾回收次數
* FGC:老年代垃圾回收次數
* FGCT:老年代垃圾回收消耗時間
* GCT:垃圾回收消耗總時間
 
10)總結垃圾回收統計
* S0:倖存1區當前使用比例
* S1:倖存2區當前使用比例
* E:伊甸園區使用比例
* O:老年代使用比例
* M:元數據區使用比例
* CCS:壓縮使用比例
* YGC:年輕代垃圾回收次數
* FGC:老年代垃圾回收次數
* FGCT:老年代垃圾回收消耗時間
* GCT:垃圾回收消耗總時間
 
11)JVM編譯方法統計
* Compiled:最近編譯方法的數量
* Size:最近編譯方法的字節碼數量
* Type:最近編譯方法的編譯類型。
* Method:方法名標識。
相關文章
相關標籤/搜索