概論
命令監(jiān)控最方便,但是最優(yōu)的方式是通過工具打開監(jiān)控:比如jconsole、jvisualvm,幾乎全部的信息都有了,另外jvisualvm支持遠程監(jiān)控,但是需要做一些配置
使用命令的目的
獲取垃圾回收器的類型和系統(tǒng)參數(shù) // jmap -heap pid
查看應(yīng)用啟動的參數(shù)// jinfo -flags pid
查看當前各個代區(qū)的容量和使用量情況 // jstat
FGC、YGC的總次數(shù)和總耗時 // jstat
立即生成Dump文件 //jmap -dump:live,file=dump_001.bin PID
強制FullGC // jmap -dump:live
查看線程的運行信息(包括死鎖的線程) // jstack -l pid
jmap命令
heap pid:查看 JDK的概況的最好的一個參數(shù)
JVM主要參數(shù):垃圾回收器的類型、各種ratio、當前實際Size、MaxSize是多少
當前各個代區(qū)的使用情況:Eden、From、To、Old區(qū)、Perm區(qū)
參數(shù)解讀
垃圾回收器: parallel + Concurrent Mark-Sweep
堆區(qū)MaxSize是4G,也就是默認是操作系統(tǒng)的1/4,16G*1/4=4G
堆區(qū)低于40%,或者大于70% 會自動調(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ū)的當前容量:1715.25+299.5+33.25=2048M
dump:生成快照文件,然后可以利用工具(比如jvisualvm)來分析dump包
dump堆到文件,format指定輸出格式,live指明是活著的對象,file指定文件名
./jmap -dump:live,format=b,file=/usr/developer/huangForBackUp/test20190129.dump 25508
jmap還有一個額外的功能,通過命令觸發(fā)FullGC,比如可以執(zhí)行定時任務(wù),在業(yè)務(wù)低峰期執(zhí)行,會自動觸發(fā)FullGC
因為在*:live前會進行full gc,如果帶上live則只統(tǒng)計活對象,因此不加live的堆大小要大于加live堆的大小
jmap -histo:live <pid>
jmap -dump:live,file=dump_001.bin PID
jstat命令
gc: 主要查看FGC、YGC的總次數(shù)和累計耗時
查看堆內(nèi)各個代區(qū)的當前容量和當前使用量(當前容量不等于MaxCapactiy,當前容量是根據(jù)條件動態(tài)調(diào)整的),因為當前容量不等于Max容量所以在定位問題的時候,沒有太多的使用價值
- 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 當前perm的容量 (KB)
- PU perm的使用 (KB)
- YGC : 新生代垃圾回收次數(shù)
- YGCT : 新生代垃圾回收時間
- FGC : 老年代垃圾回收次數(shù)
- FGCT : 老年代垃圾回收時間
- GCT : 垃圾回收總消耗時間
gcutil:功能和gc 一樣,但是是百分比的形式,讀取更友好
gccapacity:讀取各個代區(qū)的當前容量、大容量、當前使用量等信息
NGCMN : 新生代占用的最小空間
NGCMX : 新生代占用的大空間
OGCMN : 老年代占用的最小空間
OGCMX : 老年代占用的大空間
OGC:當前年老代的容量 (KB)
OC:當前年老代的空間 (KB)
PGCMN : perm占用的最小空間
PGCMX : perm占用的大空間
命令的使用:
./jstat -gc 91328
./jstat -gcutil 91328
./jstat -gccapacity 91328
jstack -l pid >> stackLog.log //-l 表示包括線程死鎖的信息
輸出當前應(yīng)用的線程使用信息,其中包括線程死鎖的相關(guān)信息
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當前標題:JVM系列實用命令(jmap、jstat、jstack)-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://jinyejixie.com/article40/dpoeeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、電子商務(wù)、外貿(mào)建站、自適應(yīng)網(wǎng)站、域名注冊、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)