jstat命令詳解

來源:互聯網
上載者:User

標籤:java   使用   io   時間   new   size   ad   on   

Jstat是JDK內建的一個輕量級小工具。全稱“Java Virtual Machine statistics monitoring tool”,它位於java的bin目錄下,主要利用JVM內建的指令對Java應用程式的資源和效能進行即時的命令列的監控,包括了對Heap size和記憶體回收狀況的監控。可見,Jstat是輕量級的、專門針對JVM的工具,非常適用。

jstat工具特彆強大,有眾多的可選項,詳細查看堆內各個部分的使用量,以及載入類的數量。使用時,需加上查看進程的進程id(使用jps查看),和所選參數。參考格式如下:

jstat [ option vmid [ interval[s|ms] [count] ] ]

參數interval和count代表查詢間隔和查詢次數,可以列出當前JVM版本支援的選項,常見的有

l class (類載入器)
l compiler (JIT)
l gc (GC堆狀態)
l gccapacity (各區大小)
l gccause (最近一次GC統計和原因)
l gcnew (新區統計)
l gcnewcapacity (新區大小)
l gcold (老區統計)
l gcoldcapacity (老區大小)
l gcpermcapacity (永久區大小)
l gcutil (GC統計匯總)
l printcompilation (HotSpot編譯統計)

1、jstat –class : 顯示載入class的數量,及所佔空間等資訊。

顯示列名

具體描述

Loaded

裝載的類的數量

Bytes

裝載類所佔用的位元組數

Unloaded

卸載類的數量

Bytes

卸載類的位元組數

Time

裝載和卸載類所花費的時間

2、jstat -compiler 顯示VMJust-In-Time 編譯的數量等資訊。

顯示列名

具體描述

Compiled

編譯任務執行數量

Failed

編譯任務執行失敗數量

Invalid

編譯任務執行失效數量

Time

編譯任務消耗時間

FailedType

最後一個編譯失敗任務的類型

FailedMethod

最後一個編譯失敗任務所在的類及方法

3、jstat -gc : 可以顯示gc的資訊,查看gc的次數,及時間。

顯示列名

具體描述

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)

4、jstat -gccapacity :可以顯示,VM記憶體中三代(young,old,perm)對象的使用和佔用大小

顯示列名

具體描述

NGCMN

年輕代(young)中初始化(最小)的大小(位元組)

NGCMX

年輕代(young)的最大容量 (位元組)

NGC

年輕代(young)中當前的容量 (位元組)

S0C

年輕代中第一個survivor(倖存區)的容量 (位元組)

S1C

年輕代中第二個survivor(倖存區)的容量 (位元組)

EC

年輕代中Eden(伊甸園)的容量 (位元組)

OGCMN

old代中初始化(最小)的大小 (位元組)

OGCMX

old代的最大容量(位元組)

OGC

old代當前新產生的容量 (位元組)

OC

Old代的容量 (位元組)

PGCMN

perm代中初始化(最小)的大小 (位元組)

PGCMX

perm代的最大容量 (位元組)

PGC

perm代當前新產生的容量 (位元組)

PC

Perm(持久代)的容量 (位元組)

YGC

從應用程式啟動到採樣時年輕代中gc次數

FGC

從應用程式啟動到採樣時old代(全gc)gc次數

5、jstat -gcutil :統計gc資訊

顯示列名

具體描述

S0

年輕代中第一個survivor(倖存區)已使用的占當前容量百分比

S1

年輕代中第二個survivor(倖存區)已使用的占當前容量百分比

E

年輕代中Eden(伊甸園)已使用的占當前容量百分比

O

old代已使用的占當前容量百分比

P

perm代已使用的占當前容量百分比

YGC

從應用程式啟動到採樣時年輕代中gc次數

YGCT

從應用程式啟動到採樣時年輕代中gc所用時間(s)

FGC

從應用程式啟動到採樣時old代(全gc)gc次數

FGCT

從應用程式啟動到採樣時old代(全gc)gc所用時間(s)

GCT

從應用程式啟動到採樣時gc用的總時間(s)

6、jstat -gcnew :年輕代對象的資訊。

顯示列名

具體描述

S0C

年輕代中第一個survivor(倖存區)的容量 (位元組)

S1C

年輕代中第二個survivor(倖存區)的容量 (位元組)

S0U

年輕代中第一個survivor(倖存區)目前已使用空間 (位元組)

S1U

年輕代中第二個survivor(倖存區)目前已使用空間 (位元組)

TT

持有次數限制

MTT

最大持有次數限制

EC

年輕代中Eden(伊甸園)的容量 (位元組)

EU

年輕代中Eden(伊甸園)目前已使用空間 (位元組)

YGC

從應用程式啟動到採樣時年輕代中gc次數

YGCT

從應用程式啟動到採樣時年輕代中gc所用時間(s)

7、jstat -gcnewcapacity: 年輕代對象的資訊及其佔用量。

顯示列名

具體描述

NGCMN

年輕代(young)中初始化(最小)的大小(位元組)

NGCMX

年輕代(young)的最大容量 (位元組)

NGC

年輕代(young)中當前的容量 (位元組)

S0CMX

年輕代中第一個survivor(倖存區)的最大容量 (位元組)

S0C

年輕代中第一個survivor(倖存區)的容量 (位元組)

S1CMX

年輕代中第二個survivor(倖存區)的最大容量 (位元組)

S1C

年輕代中第二個survivor(倖存區)的容量 (位元組)

ECMX

年輕代中Eden(伊甸園)的最大容量 (位元組)

EC

年輕代中Eden(伊甸園)的容量 (位元組)

YGC

從應用程式啟動到採樣時年輕代中gc次數

FGC

從應用程式啟動到採樣時old代(全gc)gc次數

8、jstat -gcold :old代對象的資訊。

顯示列名

具體描述

PC

Perm(持久代)的容量 (位元組)

PU

Perm(持久代)目前已使用空間 (位元組)

OC

Old代的容量 (位元組)

OU

Old代目前已使用空間 (位元組)

YGC

從應用程式啟動到採樣時年輕代中gc次數

FGC

從應用程式啟動到採樣時old代(全gc)gc次數

FGCT

從應用程式啟動到採樣時old代(全gc)gc所用時間(s)

GCT

從應用程式啟動到採樣時gc用的總時間(s)

9、stat -gcoldcapacity : old代對象的資訊及其佔用量。

顯示列名

具體描述

OGCMN

old代中初始化(最小)的大小 (位元組)

OGCMX

old代的最大容量(位元組)

OGC

old代當前新產生的容量 (位元組)

OC

Old代的容量 (位元組)

YGC

從應用程式啟動到採樣時年輕代中gc次數

FGC

從應用程式啟動到採樣時old代(全gc)gc次數

FGCT

從應用程式啟動到採樣時old代(全gc)gc所用時間(s)

GCT

從應用程式啟動到採樣時gc用的總時間(s)

10、jstat -gcpermcapacity: perm對象的資訊及其佔用量。

顯示列名

具體描述

PGCMN

perm代中初始化(最小)的大小 (位元組)

PGCMX

perm代的最大容量 (位元組)

PGC

perm代當前新產生的容量 (位元組)

PC

Perm(持久代)的容量 (位元組)

YGC

從應用程式啟動到採樣時年輕代中gc次數

FGC

從應用程式啟動到採樣時old代(全gc)gc次數

FGCT

從應用程式啟動到採樣時old代(全gc)gc所用時間(s)

GCT

從應用程式啟動到採樣時gc用的總時間(s)

11、jstat -printcompilation :當前VM執行的資訊。

顯示列名

具體描述

Compiled

編譯任務的數目

Size

方法產生的位元組碼的大小

Type

編譯類型

Method

類名和方法名用來標識編譯的方法。類名使用/做為一個命名空間分隔字元。方法名是給定類中的方法。上述格式是由-XX:+PrintComplation選項進行設定的

舉例:

使用jps -l 查看LVMID(本地虛擬機器ID)和主類全名

15659 sun.tools.jps.Jps
15333

得到LVMID後,我們查看15333進程(eclipse進程)的GC狀況:

jstat -gc 15333 1s 3 (查看15333進程的GC狀況,每秒查一次,總共查詢3次)

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
4800.0 4800.0 0.0 0.0 38720.0 560.9 96572.0 40787.0 48384.0 48368.7 21 0.308 25 3.792 4.100
4800.0 4800.0 0.0 0.0 38720.0 560.9 96572.0 40787.0 48384.0 48368.7 21 0.308 25 3.792 4.100
4800.0 4800.0 0.0 0.0 38720.0 560.9 96572.0 40787.0 48384.0 48368.7 21 0.308 25 3.792 4.100

從上面可以看到總共發生了發生了21次Minor GC(新生代),和25次Full GC(老年代),總耗時4.100秒;21次 Minor GC耗時0.308秒,25次的Full GC耗時3.792秒,Full GC的耗時遠超Minor GC。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.