Java Mission Control之使用

最近在把一個(gè)重構(gòu)完的項(xiàng)目放到beta環(huán)境測(cè)試時(shí)啼止,
順帶實(shí)踐了一下Java Mission Control(簡稱JMC)來分析jvm。發(fā)現(xiàn)確實(shí)好用兵罢,個(gè)人覺得作為要收費(fèi)的JProfile的代替品已經(jīng)足夠用了献烦。

JMC可以看的東西太多,選一些自己覺得最有用的來總結(jié)一下:

JMC

JDk7 7u40之后自帶卖词。主要有兩種功能

  • 實(shí)時(shí)監(jiān)控JVM運(yùn)行時(shí)的狀態(tài)
  • Java Flight Recorder 取樣分析

實(shí)時(shí)監(jiān)控

如果是遠(yuǎn)程服務(wù)器巩那,使用前要開JMX

-Dcom.sun.management.jmxremote.port=${YOUR PORT}
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Djava.rmi.server.hostname=${YOUR HOST/IP}

File -> Connetct -> Create A New Connection吏夯, 填入上面JMX參數(shù)的host和port,服務(wù)器賬號(hào)密碼即横。

jmc_main_monitoring

通過“+”按需添加各種統(tǒng)計(jì)圖表

Action

Triggets

可以選擇各種Action噪生,Condition設(shè)置條件,條件達(dá)到Action就會(huì)被觸發(fā)东囚。

例如跺嗽,你可以設(shè)置heap dump當(dāng)接近memory limit;又或者在CPU高消耗期間觸發(fā) JFR recoding了解發(fā)生了什么鬼页藻。

另外action也可以選擇log或者發(fā)送郵件的方式

Memory

Memory

內(nèi)存tab提供heap和GC的信息桨嫁。個(gè)人最主要看GC次數(shù)、時(shí)間份帐;以及隨著GC發(fā)生heap的內(nèi)存變化情況璃吧,以便來調(diào)整jvm參數(shù)進(jìn)行優(yōu)化。

Threads

Threads

主要看每條線程所占的CPU废境、死鎖檢測(cè)以及線程是被哪個(gè)代碼阻塞的(Lock Name)

Flight Recorder

要使用取樣畜挨,需要先添加參數(shù)

-XX:+UnlockCommercialFeatures 
-XX:+FlightRecorder

取樣時(shí)間默認(rèn)1分鐘,可自行按需調(diào)整噩凹,事件設(shè)置選為profiling巴元,然后可以設(shè)置都需要profile哪些信息,比如:

  • 加上對(duì)象數(shù)量的統(tǒng)計(jì):Java Virtual Machine->GC->Detail->Object Count/Object Count after GC
  • 方法調(diào)用采樣的間隔從10ms改為1ms(但不能低于1ms驮宴,否則會(huì)影響性能了): Java Virtual Machine->Profiling下的兩個(gè)選項(xiàng)
  • Socket與File采樣, 10ms太久务冕,但即使改為1ms也未必能抓住什么,可以干脆取消掉: Java Application->File Read/FileWrite/Socket Read/Socket Write

然后就開始Profile幻赚,到時(shí)間后Profile結(jié)束禀忆,會(huì)自動(dòng)把記錄下載回來,在JMC中展示落恼。

General

JVM Information tab包含所有JVM 參數(shù)箩退,可以在這里查看,當(dāng)然也可以在服務(wù)器上通過 XX:+PrintFlagsFinal 查看

Memory

GC詳細(xì)信息(Garbage Collections佳谦、GC Times)- gc次數(shù)戴涝,每次gc時(shí)的詳細(xì)信息,幾時(shí)發(fā)生gc钻蔑,什么gc啥刻,持續(xù)時(shí)間,clean了多少空間等

內(nèi)存分配(Allocations) - 讓對(duì)象分配情況無所遁形咪笑。 按類可帽、按線程、對(duì)象的創(chuàng)建調(diào)用棧來查看對(duì)象創(chuàng)建情況窗怒, 可以看到TLAB內(nèi)/外的分配情況(每條線程在Heap里分了一個(gè)Thread Local Area映跟,在TLAB里的內(nèi)存分配不需要線程競爭)

一般來說蓄拣,盡可能確保以下幾點(diǎn),你的程序會(huì)跑得更快:

  • 分配更少的對(duì)象
  • 盡可能少進(jìn)行 full gc
  • 盡可能少在TLAB外分配對(duì)象

Code

Hot packages: 熱點(diǎn)packages統(tǒng)計(jì)努隙,看以看每個(gè)Java package的耗時(shí)

Hot classes:熱點(diǎn)class統(tǒng)計(jì)球恤,能看出哪個(gè)class最耗CPU

Threads

  • Contention:線程爭奪,統(tǒng)計(jì)哪些線程被哪些方法阻塞荸镊,阻塞多久
  • Lock Instances:展示哪些鎖實(shí)例會(huì)導(dǎo)致線程爭奪

要提高吞吐量咽斧,可以根據(jù)以上兩點(diǎn)來做優(yōu)化

參考:

java-performance.info上的介紹文章
另一份Java應(yīng)用調(diào)優(yōu)指南之-工具篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市躬存,隨后出現(xiàn)的幾起案子张惹,更是在濱河造成了極大的恐慌,老刑警劉巖优构,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異雁竞,居然都是意外死亡钦椭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門碑诉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彪腔,“玉大人,你說我怎么就攤上這事进栽〉抡酰” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵快毛,是天一觀的道長格嗅。 經(jīng)常有香客問我,道長唠帝,這世上最難降的妖魔是什么屯掖? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮襟衰,結(jié)果婚禮上贴铜,老公的妹妹穿的比我還像新娘。我一直安慰自己瀑晒,他們只是感情好绍坝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苔悦,像睡著了一般轩褐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玖详,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天灾挨,我揣著相機(jī)與錄音邑退,去河邊找鬼。 笑死劳澄,一個(gè)胖子當(dāng)著我的面吹牛地技,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秒拔,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼莫矗,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了砂缩?” 一聲冷哼從身側(cè)響起作谚,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎庵芭,沒想到半個(gè)月后妹懒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡双吆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年眨唬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片好乐。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匾竿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蔚万,到底是詐尸還是另有隱情岭妖,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布反璃,位于F島的核電站昵慌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淮蜈。R本人自食惡果不足惜废离,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望礁芦。 院中可真熱鬧蜻韭,春花似錦、人聲如沸柿扣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽未状。三九已至俯画,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間司草,已是汗流浹背艰垂。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工泡仗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人猜憎。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓娩怎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胰柑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子截亦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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