JVM優(yōu)化篇之參數(shù)(二)

本篇是接著上一篇文章的基礎(chǔ)上新增的內(nèi)容,上篇文章地址: http://www.reibang.com/p/c791dfa0a93d

jstat詳解

  • 通過jstat命令進(jìn)行查看堆內(nèi)存使用情況
    jstat命令可以查看堆內(nèi)存各部分的使用量控淡,以及加載類的數(shù)量嫌吠。命令的格式如下:
    jstat [-命令選項(xiàng)] [vmid] [間隔時(shí)間/毫秒] [查詢次數(shù)]
  • 查看class加載統(tǒng)計(jì)
[root@node01 ~]# jps
7080 Jps
6219 Bootstrap
[root@node01 ~]# jstat ‐class 6219
Loaded Bytes Unloaded Bytes Time
3273   7122.3    0     0.0  3.98

說明:
Loaded:加載class的數(shù)量
Bytes:所占用空間大小
Unloaded:未加載數(shù)量
Bytes:未加載占用空間
Time:時(shí)間

  • 查看編譯統(tǒng)計(jì)
[root@node01 ~]# jstat ‐compiler 6219
Compiled Failed Invalid Time FailedType FailedMethod
2376       1       0    8.04     1 org/apache/tomcat/util/IntrospectionUtils setProperty

說明:
Compiled:編譯數(shù)量
Failed:失敗數(shù)量
Invalid:不可用數(shù)量
Time:時(shí)間
FailedType:失敗類型
FailedMethod:失敗的方法

  • 垃圾回收統(tǒng)計(jì)
[root@node01 ~]# jstat ‐gc 6219
S0C S1C S0U S1U EC EU OC OU MC
MU CCSC CCSU YGC YGCT FGC FGCT GCT
9216.0 8704.0 0.0 6127.3 62976.0 3560.4 33792.0 20434.9
23808.0 23196.1 2560.0 2361.6 7 1.078 1 0.244 1.323
#也可以指定打印的間隔和次數(shù),每1秒中打印一次掺炭,共打印5次
[root@node01 ~]# jstat ‐gc 6219 1000 5
S0C S1C S0U S1U EC EU OC OU MC
MU CCSC CCSU YGC YGCT FGC FGCT GCT
9216.0 8704.0 0.0 6127.3 62976.0 3917.3 33792.0 20434.9
23808.0 23196.1 2560.0 2361.6 7 1.078 1 0.244 1.323
9216.0 8704.0 0.0 6127.3 62976.0 3917.3 33792.0 20434.9
23808.0 23196.1 2560.0 2361.6 7 1.078 1 0.244 1.323
9216.0 8704.0 0.0 6127.3 62976.0 3917.3 33792.0 20434.9
23808.0 23196.1 2560.0 2361.6 7 1.078 1 0.244 1.323
9216.0 8704.0 0.0 6127.3 62976.0 3917.3 33792.0 20434.9
23808.0 23196.1 2560.0 2361.6 7 1.078 1 0.244 1.323
9216.0 8704.0 0.0 6127.3 62976.0 3917.3 33792.0 20434.9
23808.0 23196.1 2560.0 2361.6 7 1.078 1 0.244 1.323

說明:
S0C:第一個(gè)Survivor區(qū)的大斜枳纭(KB)
S1C:第二個(gè)Survivor區(qū)的大小(KB)
S0U:第一個(gè)Survivor區(qū)的使用大薪ā(KB)
S1U:第二個(gè)Survivor區(qū)的使用大锌话(KB)
EC:Eden區(qū)的大小(KB)
EU:Eden區(qū)的使用大醒ā(KB)
OC:Old區(qū)大邪上怼(KB)
OU:Old使用大小(KB)
MC:方法區(qū)大衅┫(KB)
MU:方法區(qū)使用大懈炙獭(KB)
CCSC:壓縮類空間大小(KB)
CCSU:壓縮類空間使用大邪菀(KB)
YGC:年輕代垃圾回收次數(shù)
YGCT:年輕代垃圾回收消耗時(shí)間
FGC:老年代垃圾回收次數(shù)
FGCT:老年代垃圾回收消耗時(shí)間
GCT:垃圾回收消耗總時(shí)間

jmap詳解

前面通過jstat可以對(duì)jvm堆的內(nèi)存進(jìn)行統(tǒng)計(jì)分析殊鞭,而jmap可以獲取到更加詳細(xì)的內(nèi)容,如:內(nèi)存使用情況的匯總尼桶、對(duì)內(nèi)存溢出的定位與分析操灿。

  • 查看內(nèi)存使用情況
[root@node01 ~]# jmap ‐heap 6219
Attaching to process ID 6219, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.141‐b15
using thread‐local object allocation.
Parallel GC with 2 thread(s)
Heap Configuration: #堆內(nèi)存配置信息
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 488636416 (466.0MB)
NewSize = 10485760 (10.0MB)
MaxNewSize = 162529280 (155.0MB)
OldSize = 20971520 (20.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
Heap Usage: # 堆內(nèi)存的使用情況
PS Young Generation #年輕代
Eden Space:
capacity = 123731968 (118.0MB)
used = 1384736 (1.320587158203125MB)
free = 122347232 (116.67941284179688MB)
1.1191416594941737% used
From Space:
capacity = 9437184 (9.0MB)
used = 0 (0.0MB)
free = 9437184 (9.0MB)
0.0% used
To Space:
capacity = 9437184 (9.0MB)
used = 0 (0.0MB)
free = 9437184 (9.0MB)
PS Old Generation #年老代
capacity = 28311552 (27.0MB)
used = 13698672 (13.064071655273438MB)
free = 14612880 (13.935928344726562MB)
48.38545057508681% used
13648 interned Strings occupying 1866368 bytes.
  • 查看內(nèi)存中對(duì)象數(shù)量及大小
#查看所有對(duì)象,包括活躍以及非活躍的
jmap ‐histo <pid> | more
#查看活躍對(duì)象
jmap ‐histo:live <pid> | more
[root@node01 ~]# jmap ‐histo:live 6219 | more
num #instances #bytes class name
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
1:    37437    7914608    [C
2:    34916    837984     java.lang.String
3:    884      654848     [B
4:    17188    550016     java.util.HashMap$Node
5:    3674     424968     java.lang.Class
6:    6322     395512     [Ljava.lang.Object;
7:    3738     328944     java.lang.reflect.Method
8:    1028     208048     [Ljava.util.HashMap$Node;
9:    2247     144264     [I
10:   4305     137760 java.util.concurrent.ConcurrentHashMap$Node
...........
對(duì)象說明

B byte
C char
D double
F float
I int
J long
Z boolean
[ 數(shù)組泵督,如[I表示int[]
[L+類名 其他對(duì)象

  • 將內(nèi)存使用情況dump到文件中
    有些時(shí)候我們需要將jvm當(dāng)前內(nèi)存中的情況dump到文件中趾盐,然后對(duì)它進(jìn)行分析,jmap也是支持dump到文件中的小腊。
#用法:
jmap ‐dump:format=b,file=dumpFileName <pid>
#示例
jmap ‐dump:format=b,file=/tmp/dump.dat 6219

可以看到已經(jīng)在/tmp下生成了dump.dat的文件救鲤。

通過jhat對(duì)dump文件進(jìn)行分析

剛才我們將jvm的內(nèi)存dump到文件中,這個(gè)文件是一個(gè)二進(jìn)制的文件秩冈,不方便查看本缠,這時(shí)我們可以借助于jhat工具進(jìn)行查看。

#用法:
jhat ‐port <port> <file>
#示例:
[root@node01 tmp]# jhat ‐port 9999 /tmp/dump.dat
Reading from /tmp/dump.dat...
Dump file created Mon Sep 10 01:04:21 CST 2018
Snapshot read, resolving...
Resolving 204094 objects...
Chasing references, expect 40
dots........................................
Eliminating duplicate references.................................
Snapshot resolved.
Started HTTP server on port 9999
Server is ready.

打開瀏覽器進(jìn)行訪問:http://192.168.40.133:9999/

dump文件內(nèi)容

在最后面有OQL查詢功能入问。
OQL

OQL

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丹锹,一起剝皮案震驚了整個(gè)濱河市稀颁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌楣黍,老刑警劉巖匾灶,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異锡凝,居然都是意外死亡粘昨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門窜锯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來张肾,“玉大人,你說我怎么就攤上這事锚扎⊥痰桑” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵驾孔,是天一觀的道長(zhǎng)芍秆。 經(jīng)常有香客問我,道長(zhǎng)翠勉,這世上最難降的妖魔是什么妖啥? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮对碌,結(jié)果婚禮上荆虱,老公的妹妹穿的比我還像新娘。我一直安慰自己朽们,他們只是感情好怀读,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骑脱,像睡著了一般菜枷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叁丧,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天啤誊,我揣著相機(jī)與錄音,去河邊找鬼拥娄。 笑死坷衍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的条舔。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼乏矾,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼孟抗!你這毒婦竟也來了迁杨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凄硼,失蹤者是張志新(化名)和其女友劉穎铅协,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摊沉,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狐史,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了说墨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骏全。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖尼斧,靈堂內(nèi)的尸體忽然破棺而出姜贡,到底是詐尸還是另有隱情,我是刑警寧澤棺棵,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布楼咳,位于F島的核電站,受9級(jí)特大地震影響烛恤,放射性物質(zhì)發(fā)生泄漏母怜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一缚柏、第九天 我趴在偏房一處隱蔽的房頂上張望苹熏。 院中可真熱鬧,春花似錦船惨、人聲如沸柜裸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疙挺。三九已至,卻和暖如春怜浅,著一層夾襖步出監(jiān)牢的瞬間铐然,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工恶座, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搀暑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓跨琳,卻偏偏與公主長(zhǎng)得像自点,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脉让,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

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