jvm統(tǒng)計(jì)信息監(jiān)控工具

jstat

?一元镀、 jstat是什么

jstat是JDK自帶的一個(gè)輕量級(jí)小工具蓖捶。全稱“Java Virtual Machine statistics monitoring tool”瘾婿,它位于java的bin目錄下馒胆,主要利用JVM內(nèi)建的指令對(duì)Java應(yīng)用程序的資源和性能進(jìn)行實(shí)時(shí)的命令行的監(jiān)控热康,包括了對(duì)Heap size和垃圾回收狀況的監(jiān)控消返。

jstat 是用于見識(shí)虛擬機(jī)各種運(yùn)行狀態(tài)信息的命令行工具载弄。它可以顯示本地或者遠(yuǎn)程虛擬機(jī)進(jìn)程中的類裝載、內(nèi)存撵颊、垃圾收集宇攻、jit編譯等運(yùn)行數(shù)據(jù),它是線上定位jvm性能的首選工具倡勇。

二逞刷、 jstat命令格式

[root@localhost ~]# jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

generalOption : 單個(gè)的常用的命令行選項(xiàng),如-help, -options, 或 -version。

outputOptions : 一個(gè)或多個(gè)輸出選項(xiàng)夸浅,由單個(gè)的statOption選項(xiàng)組成仑最,可以和-t, -h, and -J等選項(xiàng)配合使用。

Usage: jstat -help|-options

?????? jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

Definitions:

? <option>????? An option reported by the -options option

? <vmid>??????? Virtual Machine Identifier. A vmid takes the following form:

???????????????????? <lvmid>[@<hostname>[:<port>]]

??????????????? Where <lvmid> is the local vm identifier for the target

??????????????? Java virtual machine, typically a process id; <hostname> is

??????????????? the name of the host running the target Java virtual machine;

??????????????? and <port> is the port number for the rmiregistry on the

??????????????? target host. See the jvmstat documentation for a more complete

??????????????? description of the Virtual Machine Identifier.

? <lines> ????? Number of samples between header lines.

? <interval>??? Sampling interval. The following forms are allowed:

??????????????????? <n>["ms"|"s"]

??????????????? Where <n> is an integer and the suffix specifies the units as?

??????????????? milliseconds("ms") or seconds("s"). The default units are "ms".

? <count> ????? Number of samples to take before terminating.

? -J<flag>????? Pass <flag> directly to the runtime system.

# option:參數(shù)選項(xiàng)

# -t:可以在打印的列加上Timestamp列帆喇,用于顯示系統(tǒng)運(yùn)行的時(shí)間

# -h:可以在周期性數(shù)據(jù)數(shù)據(jù)的時(shí)候警医,可以在指定輸出多少行以后輸出一次表頭

# vmid:Virtual Machine ID( 進(jìn)程的 pid)

# interval:執(zhí)行每次的間隔時(shí)間,單位為毫秒

# count:用于指定輸出多少次記錄坯钦,缺省則會(huì)一直打印

三预皇、jstat參數(shù)選項(xiàng)

[root@localhost ~]# jstat -options

-class 顯示ClassLoad的相關(guān)信息;

-compiler 顯示JIT編譯的相關(guān)信息葫笼;

-gc 顯示和gc相關(guān)的堆信息深啤;

-gccapacity    顯示各個(gè)代的容量以及使用情況拗馒;

-gcmetacapacity 顯示metaspace的大小

-gcnew 顯示新生代信息路星;

-gcnewcapacity 顯示新生代大小和使用情況;

-gcold 顯示老年代和永久代的信息诱桂;

-gcoldcapacity 顯示老年代的大醒筘ぁ;

-gcutil   顯示垃圾收集信息挥等;

-gccause 顯示垃圾回收的相關(guān)信息(通-gcutil),同時(shí)顯示最后一次或當(dāng)前正在發(fā)生的垃圾回收的誘因友绝;

-printcompilation 輸出JIT編譯的方法信息

參數(shù)名稱 | 參數(shù)說明

---|---|---

class | 用于查看類加載情況的統(tǒng)計(jì),顯示加載class的數(shù)量肝劲,及所占空間等信息迁客。

compiler | 查看HotSpot中即時(shí)編譯器編譯情況的統(tǒng)計(jì)

gc | 查看JVM中堆的垃圾收集情況的統(tǒng)計(jì),可以顯示gc的信息辞槐,查看gc的次數(shù)掷漱,及時(shí)間。其中最后五項(xiàng)榄檬,分別是young gc的次數(shù)卜范,young gc的時(shí)間,full gc的次數(shù)鹿榜,full gc的時(shí)間海雪,gc的總時(shí)間。

gccapacity | 查看新生代舱殿、老生代及持久代的存儲(chǔ)容量情況奥裸,可以顯示,VM內(nèi)存中三代(young,old,perm)對(duì)象的使用和占用大小

gccause | 查看垃圾收集的統(tǒng)計(jì)情況(這個(gè)和-gcutil選項(xiàng)一樣)刺彩,如果有發(fā)生垃圾收集,它還會(huì)顯示最后一次及當(dāng)前正在發(fā)生垃圾收集的原因

gcmetacapacity | 顯示關(guān)于metaspace大小的統(tǒng)計(jì)信息。

gcnew | 查看新生代垃圾收集的情況创倔,new對(duì)象的信息

gcnewcapacity | 用于查看新生代的存儲(chǔ)容量情況知押,new對(duì)象的信息及其占用量

gcold | 用于查看老生代及持久代發(fā)生GC的情況叹螟,old對(duì)象的信息

gcoldcapacity | 用于查看老生代的容量,old對(duì)象的信息及其占用量

gcpermcapacity | 用于查看持久代的容量台盯,perm對(duì)象的信息及其占用量

gcutil | 查看新生代罢绽、老生代及持代垃圾收集的情況

printcompilation | 當(dāng)前VM執(zhí)行的信息

四、 參數(shù)使用實(shí)例

# 在屏幕打印出一次結(jié)果

[root@localhost ~]# jstat -gccause pid

# 不斷的在屏幕打印出結(jié)果

[root@localhost ~]# jstat -gccause pid 1每格1毫秒輸出結(jié)果

[root@localhost ~]# jstat -gccause pid 2000每格2秒輸出結(jié)果

類加載統(tǒng)計(jì) class

[root@localhost ~]# jstat -class 17248?

Loaded? Bytes? Unloaded? Bytes ??? Time ??

? 3356? 7443.8??????? 0 ??? 0.0 ????? 2.20

Loaded:加載class的數(shù)量

Bytes:所占用空間大小

Unloaded:未加載數(shù)量

Bytes:未加載占用空間

Time:時(shí)間

編譯統(tǒng)計(jì) compiler

[root@localhost ~]# jstat -compiler 17248

Compiled Failed Invalid ? Time ? FailedType FailedMethod

??? 2638????? 0 ????? 0 ??? 8.59????????? 0 ?

Compiled:編譯數(shù)量

Failed:失敗數(shù)量

Invalid:不可用數(shù)量

Time:時(shí)間

FailedType:失敗類型

FailedMethod:失敗的方法

編譯統(tǒng)計(jì) compiler

垃圾回收統(tǒng)計(jì) gc

[root@localhost ~]# jstat -gc 17248

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

12800.0 2560.0? 0.0 ? 2410.5 74240.0? 53184.1 ? 59392.0??? 13256.4 ? 25088.0 24534.7 2560.0 2366.7????? 7??? 0.190 ? 1????? 0.070??? 0.260

S0C:第一個(gè)幸存區(qū)的大小

S1C:第二個(gè)幸存區(qū)的大小

S0U:第一個(gè)幸存區(qū)的使用大小

S1U:第二個(gè)幸存區(qū)的使用大小

EC:伊甸園區(qū)的大小

EU:伊甸園區(qū)的使用大小

OC:老年代大小

OU:老年代使用大小

MC:方法區(qū)大小

MU:方法區(qū)使用大小

CCSC:壓縮類空間大小

CCSU:壓縮類空間使用大小

YGC:年輕代垃圾回收次數(shù)

YGCT:年輕代垃圾回收消耗時(shí)間

FGC:老年代垃圾回收次數(shù)

FGCT:老年代垃圾回收消耗時(shí)間

GCT:垃圾回收消耗總時(shí)間

堆內(nèi)存統(tǒng)計(jì) gccapacity

[root@localhost ~]# jstat -gccapacity 17248

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

?52224.0 839680.0 165376.0 12800.0 2560.0? 74240.0 ? 105472.0? 1679360.0??? 59392.0??? 59392.0????? 0.0 1071104.0? 25088.0????? 0.0 1048576.0 ? 2560.0????? 7 ??? 1

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:當(dāng)前新生代容量

S0C:第一個(gè)幸存區(qū)大小

S1C:第二個(gè)幸存區(qū)的大小

EC:伊甸園區(qū)的大小

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:當(dāng)前老年代大小

OC:當(dāng)前老年代大小

MCMN:最小元數(shù)據(jù)容量

MCMX:最大元數(shù)據(jù)容量

MC:當(dāng)前元數(shù)據(jù)空間大小

CCSMN:最小壓縮類空間大小

CCSMX:最大壓縮類空間大小

CCSC:當(dāng)前壓縮類空間大小

YGC:年輕代gc次數(shù)

FGC:老年代GC次數(shù)

新生代垃圾回收統(tǒng)計(jì) gcnew

[root@localhost ~]# jstat -gcnew 17248

?S0C??? S1C??? S0U??? S1U ? TT MTT? DSS????? EC ????? EU ??? YGC ??? YGCT??

12800.0 2560.0??? 0.0 2410.5? 4? 15 12800.0? 74240.0? 56469.6????? 7??? 0.190

S0C:第一個(gè)幸存區(qū)大小

S1C:第二個(gè)幸存區(qū)的大小

S0U:第一個(gè)幸存區(qū)的使用大小

S1U:第二個(gè)幸存區(qū)的使用大小

TT:對(duì)象在新生代存活的次數(shù)

MTT:對(duì)象在新生代存活的最大次數(shù)

DSS:期望的幸存區(qū)大小

EC:伊甸園區(qū)的大小

EU:伊甸園區(qū)的使用大小

YGC:年輕代垃圾回收次數(shù)

YGCT:年輕代垃圾回收消耗時(shí)間

新生代內(nèi)存統(tǒng)計(jì) gcnewcapacity

[root@localhost ~]#? jstat -gcnewcapacity 17248

? NGCMN????? NGCMX ????? NGC????? S0CMX ??? S0C ??? S1CMX ??? S1C ????? ECMX??????? EC????? YGC ? FGC?

?? 52224.0 ? 839680.0 ? 165376.0 279552.0? 12800.0 279552.0 ? 2560.0 ? 838656.0??? 74240.0 ??? 7 ??? 1

NGCMN:新生代最小容量

NGCMX:新生代最大容量

NGC:當(dāng)前新生代容量

S0CMX:最大幸存1區(qū)大小

S0C:當(dāng)前幸存1區(qū)大小

S1CMX:最大幸存2區(qū)大小

S1C:當(dāng)前幸存2區(qū)大小

ECMX:最大伊甸園區(qū)大小

EC:當(dāng)前伊甸園區(qū)大小

YGC:年輕代垃圾回收次數(shù)

FGC:老年代回收次數(shù)

老年代垃圾回收統(tǒng)計(jì) gcold

[root@localhost ~]# jstat -gcold 17248

?? MC ????? MU????? CCSC ??? CCSU ????? OC????????? OU ????? YGC??? FGC??? FGCT ??? GCT ??

?25088.0? 24534.7 ? 2560.0 ? 2366.7 ??? 59392.0 ??? 13256.4????? 7 ??? 1??? 0.070??? 0.260

MC:方法區(qū)大小

MU:方法區(qū)使用大小

CCSC:壓縮類空間大小

CCSU:壓縮類空間使用大小

OC:老年代大小

OU:老年代使用大小

YGC:年輕代垃圾回收次數(shù)

FGC:老年代垃圾回收次數(shù)

FGCT:老年代垃圾回收消耗時(shí)間

GCT:垃圾回收消耗總時(shí)間

老年代內(nèi)存統(tǒng)計(jì)

[root@localhost ~]# jstat -gcoldcapacity? 17248

?? OGCMN ????? OGCMX??????? OGC ??????? OC ????? YGC ? FGC??? FGCT ??? GCT ??

?? 105472.0 ? 1679360.0 ??? 59392.0 ??? 59392.0 ??? 7 ??? 1??? 0.070??? 0.260

OGCMN:老年代最小容量

OGCMX:老年代最大容量

OGC:當(dāng)前老年代大小

OC:老年代大小

YGC:年輕代垃圾回收次數(shù)

FGC:老年代垃圾回收次數(shù)

FGCT:老年代垃圾回收消耗時(shí)間

GCT:垃圾回收消耗總時(shí)間

元數(shù)據(jù)空間統(tǒng)計(jì) gcmetacapacity

[root@localhost ~]# jstat -gcmetacapacity 17248

?? MCMN ????? MCMX??????? MC ????? CCSMN????? CCSMX ????? CCSC ??? YGC ? FGC??? FGCT ??? GCT ??

?????? 0.0? 1071104.0??? 25088.0??????? 0.0? 1048576.0 ??? 2560.0 ??? 7 ??? 1??? 0.070??? 0.260

MCMN: 最小元數(shù)據(jù)容量

MCMX:最大元數(shù)據(jù)容量

MC:當(dāng)前元數(shù)據(jù)空間大小

CCSMN:最小壓縮類空間大小

CCSMX:最大壓縮類空間大小

CCSC:當(dāng)前壓縮類空間大小

YGC:年輕代垃圾回收次數(shù)

FGC:老年代垃圾回收次數(shù)

FGCT:老年代垃圾回收消耗時(shí)間

GCT:垃圾回收消耗總時(shí)間

總結(jié)垃圾回收統(tǒng)計(jì) gcutil

[root@localhost ~]# jstat -gcutil 17248

? S0 ??? S1 ??? E????? O????? M ??? CCS??? YGC ??? YGCT??? FGC??? FGCT ??? GCT ??

? 0.00? 94.16? 77.77? 22.32? 97.79? 92.45????? 7??? 0.190 ??? 1??? 0.070??? 0.260

S0:幸存1區(qū)當(dāng)前使用比例

S1:幸存2區(qū)當(dāng)前使用比例

E:伊甸園區(qū)使用比例

O:老年代使用比例

M:元數(shù)據(jù)區(qū)使用比例

CCS:壓縮使用比例

YGC:年輕代垃圾回收次數(shù)

FGC:老年代垃圾回收次數(shù)

FGCT:老年代垃圾回收消耗時(shí)間

GCT:垃圾回收消耗總時(shí)間

JVM編譯方法統(tǒng)計(jì)

[root@localhost ~]# jstat -printcompilation 17248

Compiled? Size? Type Method

??? 2639 ??? 79??? 1 org/apache/juli/AsyncFileHandler$LoggerThread run

Compiled:最近編譯方法的數(shù)量

Size:最近編譯方法的字節(jié)碼數(shù)量

Type:最近編譯方法的編譯類型静盅。

Method:方法名標(biāo)識(shí)良价。

關(guān)于運(yùn)維學(xué)習(xí)、分享蒿叠、交流明垢,筆者開通了微信公眾號(hào)【運(yùn)維貓】,感興趣的朋友可以關(guān)注下市咽,歡迎加入痊银,建立屬于我們自己的小圈子,一起學(xué)運(yùn)維知識(shí)施绎。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溯革,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谷醉,更是在濱河造成了極大的恐慌致稀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件孤紧,死亡現(xiàn)場離奇詭異豺裆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)号显,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門臭猜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人押蚤,你說我怎么就攤上這事蔑歌。” “怎么了揽碘?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵次屠,是天一觀的道長园匹。 經(jīng)常有香客問我,道長劫灶,這世上最難降的妖魔是什么裸违? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮本昏,結(jié)果婚禮上供汛,老公的妹妹穿的比我還像新娘。我一直安慰自己涌穆,他們只是感情好怔昨,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著宿稀,像睡著了一般趁舀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祝沸,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天矮烹,我揣著相機(jī)與錄音,去河邊找鬼奋隶。 笑死擂送,一個(gè)胖子當(dāng)著我的面吹牛悦荒,可吹牛的內(nèi)容都是我干的唯欣。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼搬味,長吁一口氣:“原來是場噩夢啊……” “哼境氢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碰纬,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤萍聊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后悦析,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寿桨,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年强戴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亭螟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骑歹,死狀恐怖预烙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情道媚,我是刑警寧澤扁掸,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布翘县,位于F島的核電站,受9級(jí)特大地震影響谴分,放射性物質(zhì)發(fā)生泄漏锈麸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一牺蹄、第九天 我趴在偏房一處隱蔽的房頂上張望掐隐。 院中可真熱鬧,春花似錦钞馁、人聲如沸虑省。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽探颈。三九已至,卻和暖如春训措,著一層夾襖步出監(jiān)牢的瞬間伪节,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工绩鸣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怀大,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓呀闻,卻偏偏與公主長得像化借,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捡多,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容