JVM性能監控與故障處理工具

    JDK的bin目錄下給咱們提供了不少好用的工具:apache

  • jps JVM Process Status Tool, 顯示指定系統內全部的HotSpot虛擬機進程
  • jstat JVM Statistics Monitoring Tool, 用於手機HotSpot虛擬機各方面的運行數據
  • jinfo Configuration Info for Java, 顯示虛擬機配置信息
  • jmap Memory Map for Java, 生成虛擬機的內存轉儲快照(heapdump文件)
  • jhat JVM Heap Demp Browser, 用於分析heapdump文件,它會簡歷一個HTTP/HTML服務器,讓用戶能夠在瀏覽器上查看分析結果
  • jstack Stack Trace for Java, 顯示虛擬機的線程快照

其中jstat是最經常使用的工具瀏覽器

jstat:服務器

jstat [-命令選項] [vmid] [間隔時間/毫秒] [查詢次數]eclipse

注意:使用的jdk版本是jdk8.工具

類加載統計:

jstat -class PIDspa

Loaded Bytes Unloaded Bytes Time線程

15756 17355.6 0 0.0 11.29對象

  • Loaded:加載class的數量
  • Bytes:所佔用空間大小
  • Unloaded:未加載數量
  • Bytes:未加載佔用空間
  • Time:時間

編譯統計

jstat -compiler PID進程

Compiled Failed Invalid Time FailedType FailedMethodip

9142 1 0 5.01 1 org/apache/felix/resolver/ResolverImpl mergeCandidatePackages

  • Compiled:編譯數量。
  • Failed:失敗數量
  • Invalid:不可用數量
  • Time:時間
  • FailedType:失敗類型
  • FailedMethod:失敗的方法

垃圾回收統計

jstat -gc PID 

S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT

20480.0 20480.0 0.0 13115.3 163840.0 113334.2 614400.0 436045.7 63872.0 61266.5 0.0 0.0 149 3.440 8 0.295 3.735

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

堆內存統計

jstat -gccapacity PID

NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC

204800.0 204800.0 204800.0 20480.0 20480.0 163840.0 614400.0 614400.0 614400.0 614400.0 0.0 63872.0 63872.0 0.0 0.0 0.0 149 8

  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:當前新生代容量
  • S0C:第一個倖存區大小
  • S1C:第二個倖存區的大小
  • EC:伊甸園區的大小
  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:當前老年代大小
  • OC:當前老年代大小
  • MCMN:最小元數據容量
  • MCMX:最大元數據容量
  • MC:當前元數據空間大小
  • CCSMN:最小壓縮類空間大小
  • CCSMX:最大壓縮類空間大小
  • CCSC:當前壓縮類空間大小
  • YGC:年輕代gc次數
  • FGC:老年代GC次數

新生代垃圾回收統計

jstat -gcnew PID

S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT

40960.0 40960.0 25443.1 0.0 15 15 20480.0 327680.0 222697.8 12 0.736

  • S0C:第一個倖存區大小
  • S1C:第二個倖存區的大小
  • S0U:第一個倖存區的使用大小
  • S1U:第二個倖存區的使用大小
  • TT:對象在新生代存活的次數
  • MTT:對象在新生代存活的最大次數
  • DSS:指望的倖存區大小
  • EC:伊甸園區的大小
  • EU:伊甸園區的使用大小
  • YGC:年輕代垃圾回收次數
  • YGCT:年輕代垃圾回收消耗時間

新生代內存統計

jstat -gcnewcapacity PID

NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC

409600.0 409600.0 409600.0 40960.0 40960.0 40960.0 40960.0 327680.0 327680.0 12 0

  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:當前新生代容量
  • S0CMX:最大幸存1區大小
  • S0C:當前倖存1區大小
  • S1CMX:最大幸存2區大小
  • S1C:當前倖存2區大小
  • ECMX:最大伊甸園區大小
  • EC:當前伊甸園區大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代回收次數

老年代垃圾回收統計

jstat -gcold PID

MC MU CCSC CCSU OC OU YGC FGC FGCT GCT

33152.0 31720.8 0.0 0.0 638976.0 184173.0 12 0 0.000 0.736

  • MC:方法區大小
  • MU:方法區使用大小
  • CCSC:壓縮類空間大小
  • CCSU:壓縮類空間使用大小
  • OC:老年代大小
  • OU:老年代使用大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間

老年代內存統計

jstat -gcoldcapacity PID

OGCMN OGCMX OGC OC YGC FGC FGCT GCT

638976.0 638976.0 638976.0 638976.0 12 0 0.000 0.736

  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:當前老年代大小
  • OC:老年代大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間

元數據空間統計

jstat -gcmetacapacity PID 

MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT

0.0 33152.0 33152.0 0.0 0.0 0.0 12 0 0.000 0.736

  • MCMN:最小元數據容量
  • MCMX:最大元數據容量
  • MC:當前元數據空間大小
  • CCSMN:最小壓縮類空間大小
  • CCSMX:最大壓縮類空間大小
  • CCSC:當前壓縮類空間大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間

總結垃圾回收統計

jstat -gcutil PID

S0 S1 E O M CCS YGC YGCT FGC FGCT GCT

62.12 0.00 81.36 28.82 95.68 - 12 0.736 0 0.000 0.736

  • S0:倖存1區當前使用比例
  • S1:倖存2區當前使用比例
  • E:伊甸園區使用比例
  • O:老年代使用比例
  • M:元數據區使用比例
  • CCS:壓縮使用比例
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間

JVM編譯方法統計

jstat -printcompilation PID

Compiled Size Type Method

4608 16 1 org/eclipse/emf/common/util/SegmentSequence$SegmentSequencePool$SegmentsAccessUnit reset

  • Compiled:最近編譯方法的數量
  • Size:最近編譯方法的字節碼數量
  • Type:最近編譯方法的編譯類型。
  • Method:方法名標識。
相關文章
相關標籤/搜索