JVM系列 實(shí)用命令(jmap懒构、jstat、jstack)

概論

命令監(jiān)控最方便耘擂,但是最優(yōu)的方式是通過工具打開監(jiān)控:比如jconsole胆剧、jvisualvm,幾乎全部的信息都有了醉冤,另外jvisualvm支持遠(yuǎn)程監(jiān)控秩霍,但是需要做一些配置篙悯。
但是實(shí)際生產(chǎn)上還是用 JRE的居多,并沒有那么多花里胡哨的功能铃绒,而且即便是JDK鸽照,linux上也是執(zhí)行不了那么多 exe文件的,但是可以查一些命令匿垄。
另外spring cloud actutor有監(jiān)控jvm的功能,可以在admin的控制臺(tái)查看實(shí)時(shí)的jvm運(yùn)行情況

使用命令的目的

  1. 獲取垃圾回收器的類型和系統(tǒng)參數(shù) // jmap -heap pid
  2. 查看應(yīng)用啟動(dòng)的參數(shù)// jinfo -flags pid
  3. 查看當(dāng)前各個(gè)代區(qū)的容量和使用量情況 // jstat
  4. FGC归粉、YGC的總次數(shù)和總耗時(shí) // jstat
  5. 立即生成Dump文件 //jmap -dump:live,file=dump_001.bin PID
  6. 強(qiáng)制FullGC // jmap -dump:live
  7. 查看線程的運(yùn)行信息(包括死鎖的線程) // jstack -l pid

jmap命令

  1. heap pid:查看 JDK的概況的最好的一個(gè)參數(shù)
  • JVM主要參數(shù):垃圾回收器的類型椿疗、各種ratio、當(dāng)前實(shí)際Size糠悼、MaxSize是多少
  • 當(dāng)前各個(gè)代區(qū)的使用情況:Eden届榄、From、To倔喂、Old區(qū)铝条、Perm區(qū)


    image

    image

    參數(shù)解讀

  • 垃圾回收器: parallel + Concurrent Mark-Sweep
  • 堆區(qū)MaxSize是4G,也就是默認(rèn)是操作系統(tǒng)的1/4,16G*1/4=4G
  • 堆區(qū)低于40%席噩,或者大于70% 會(huì)自動(dòng)調(diào)整老年代的大邪噻帧(但是不能低于xms的配置 2G,也不能高于 MaxSize 4G)
  • Perm區(qū) 最大1G 悼枢,如我們配置
  • 老年代(concurrent mark-sweep generation)容量:1715.25MB
  • 年輕代:New Generation + 1 Survivor Space= 299.5MB+33.25MB
  • 堆區(qū)的當(dāng)前容量:1715.25+299.5+33.25=2048M
  1. dump:生成快照文件埠忘,然后可以利用工具(比如jvisualvm)來分析dump包
    dump堆到文件,format指定輸出格式,live指明是活著的對(duì)象,file指定文件名
./jmap -dump:live,format=b,file=/usr/developer/huangForBackUp/test20190129.dump 25508
  1. jmap還有一個(gè)額外的功能馒索,通過命令觸發(fā)FullGC莹妒,比如可以執(zhí)行定時(shí)任務(wù),在業(yè)務(wù)低峰期執(zhí)行绰上,會(huì)自動(dòng)觸發(fā)FullGC
    因?yàn)樵?:live前會(huì)進(jìn)行full gc旨怠,如果帶上live則只統(tǒng)計(jì)活對(duì)象,因此不加live的堆大小要大于加live堆的大小
jmap -histo:live <pid>
jmap -dump:live,file=dump_001.bin PID

jstat命令

  1. gc: 主要查看FGC蜈块、YGC的總次數(shù)和累計(jì)耗時(shí)
  • 查看堆內(nèi)各個(gè)代區(qū)的當(dāng)前容量和當(dāng)前使用量(當(dāng)前容量不等于MaxCapactiy鉴腻,當(dāng)前容量是根據(jù)條件動(dòng)態(tài)調(diào)整的),因?yàn)楫?dāng)前容量不等于Max容量所以在定位問題的時(shí)候百揭,沒有太多的使用價(jià)值
- S0C : survivor0區(qū)的總?cè)萘?- S1C : survivor1區(qū)的總?cè)萘?- S0U : survivor0區(qū)已使用的容量
- S1C : survivor1區(qū)已使用的容量
- EC : Eden區(qū)的總?cè)萘?- EU : Eden區(qū)已使用的容量
- OC : Old區(qū)的總?cè)萘?- OU : Old區(qū)已使用的容量
- PC 當(dāng)前perm的容量 (KB)
- PU perm的使用 (KB)
- YGC : 新生代垃圾回收次數(shù)
- YGCT : 新生代垃圾回收時(shí)間
- FGC : 老年代垃圾回收次數(shù)
- FGCT : 老年代垃圾回收時(shí)間
- GCT : 垃圾回收總消耗時(shí)間
  1. gcutil:功能和gc 一樣拘哨,但是是百分比的形式,讀取更友好

  2. gccapacity:讀取各個(gè)代區(qū)的當(dāng)前容量信峻、最大容量倦青、當(dāng)前使用量等信息

NGCMN : 新生代占用的最小空間
NGCMX : 新生代占用的最大空間
OGCMN : 老年代占用的最小空間
OGCMX : 老年代占用的最大空間
OGC:當(dāng)前年老代的容量 (KB)
OC:當(dāng)前年老代的空間 (KB)
PGCMN : perm占用的最小空間
PGCMX : perm占用的最大空間

命令的使用:

./jstat -gc 91328
./jstat -gcutil 91328
./jstat -gccapacity 91328

jstack 線程監(jiān)控

詳細(xì)的使用和線程dump文件分析博客
http://www.hollischuang.com/archives/110

jstack -l pid >> stackLog.log //-l 表示包括線程死鎖的信息
輸出當(dāng)前應(yīng)用的線程使用信息,其中包括線程死鎖的相關(guān)信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盹舞,一起剝皮案震驚了整個(gè)濱河市产镐,隨后出現(xiàn)的幾起案子隘庄,更是在濱河造成了極大的恐慌,老刑警劉巖癣亚,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丑掺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡述雾,警方通過查閱死者的電腦和手機(jī)街州,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玻孟,“玉大人唆缴,你說我怎么就攤上這事∈螋幔” “怎么了面徽?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)匣掸。 經(jīng)常有香客問我趟紊,道長(zhǎng),這世上最難降的妖魔是什么碰酝? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任霎匈,我火速辦了婚禮,結(jié)果婚禮上送爸,老公的妹妹穿的比我還像新娘唧躲。我一直安慰自己,他們只是感情好碱璃,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布弄痹。 她就那樣靜靜地躺著,像睡著了一般嵌器。 火紅的嫁衣襯著肌膚如雪肛真。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天爽航,我揣著相機(jī)與錄音蚓让,去河邊找鬼。 笑死讥珍,一個(gè)胖子當(dāng)著我的面吹牛历极,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衷佃,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼趟卸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起锄列,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤图云,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后邻邮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竣况,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年筒严,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丹泉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸭蛙,死狀恐怖摹恨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情规惰,我是刑警寧澤睬塌,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布泉蝌,位于F島的核電站歇万,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏勋陪。R本人自食惡果不足惜贪磺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诅愚。 院中可真熱鬧寒锚,春花似錦、人聲如沸违孝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雌桑。三九已至喇喉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間校坑,已是汗流浹背拣技。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耍目,地道東北人膏斤。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像邪驮,于是被迫代替她去往敵國(guó)和親莫辨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

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