Linux 使用jstat命令查看jvm的GC情況

專注于為中小企業提供成都做網站、網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業北安免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了成百上千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
命令格式
jstat命令命令格式:
jstat [Options] vmid[interval] [count]
參數說明:
Options,選項,我們一般使用 -gcutil 查看gc情況
vmid
,VM的進程號,即當前運行的java進程號
interval
,間隔時間,單位為秒或者毫秒
count
,打印次數,如果缺省則打印無數次
示例說明
示例
通常運行命令如下:
jstat -gc 12538 5000
即會每5秒一次顯示進程號為12538的java進成的GC情況,
顯示內容如下圖:
結果說明
S0C:年輕代中第一個survivor(幸存區)的容量 (字節)
S1C
:年輕代中第二個survivor(幸存區)的容量 (字節)
S0U
:年輕代中第一個survivor(幸存區)目前已使用空間 (字節)
S1U
:年輕代中第二個survivor(幸存區)目前已使用空間 (字節)
EC
:年輕代中Eden(伊甸園)的容量 (字節)
EU
:年輕代中Eden(伊甸園)目前已使用空間 (字節)
OC
:Old代的容量 (字節)
OU
:Old代目前已使用空間 (字節)
PC
:Perm(持久代)的容量 (字節)
PU
:Perm(持久代)目前已使用空間 (字節)
YGC
:從應用程序啟動到采樣時年輕代中gc次數
YGCT
:從應用程序啟動到采樣時年輕代中gc所用時間(s)
FGC
:從應用程序啟動到采樣時old代(全gc)gc次數
FGCT
:從應用程序啟動到采樣時old代(全gc)gc所用時間(s)
GCT
:從應用程序啟動到采樣時gc用的總時間(s)
NGCMN
:年輕代(young)中初始化(最小)的大小 (字節)
NGCMX
:年輕代(young)的最大容量 (字節)
NGC
:年輕代(young)中當前的容量 (字節)
OGCMN
:old代中初始化(最小)的大小 (字節)
OGCMX
:old代的最大容量 (字節)
OGC
:old代當前新生成的容量 (字節)
PGCMN
:perm代中初始化(最小)的大小 (字節)
PGCMX
:perm代的最大容量 (字節)
PGC
:perm代當前新生成的容量 (字節)
S0
:年輕代中第一個survivor(幸存區)已使用的占當前容量百分比
S1
:年輕代中第二個survivor(幸存區)已使用的占當前容量百分比
E
:年輕代中Eden(伊甸園)已使用的占當前容量百分比
O
:old代已使用的占當前容量百分比
P
:perm代已使用的占當前容量百分比
S0CMX
:年輕代中第一個survivor(幸存區)的最大容量 (字節)
S1CMX
:年輕代中第二個survivor(幸存區)的最大容量 (字節)
ECMX
:年輕代中Eden(伊甸園)的最大容量 (字節)
DSS
:當前需要survivor(幸存區)的容量 (字節)(Eden區已滿)
TT
: 持有次數限制
MTT
: 最大持有次數限制
一、堆內存相關配置
設置堆初始值
指令1:-Xms2g
指令2:-XX:InitialHeapSize=2048m
設置堆區最大值
指令1:`-Xmx2g`
指令2: -XX:MaxHeapSize=2048m
縮小堆內存的時機
-XX:MaxHeapFreeRatio=70//堆內存使用率大于70時擴張堆內存,xms=xmx時該參數無效,默認值70
擴張堆內存的時機
-XX:MinHeapFreeRatio=40//堆內存使用率小于40時縮減堆內存,xms=xmx時該參數無效,默認值40
新生代內存配置
指令1:-Xmn512m
指令2:-XX:MaxNewSize=512m
2個survivor區和Eden區大小比率
指令:-XX:SurvivorRatio=6 //S區和Eden區占新生代比率為1:6,兩個S區2:6
新生代和老年代的占比
-XX:NewRatio=4 //表示新生代:老年代 = 1:4 即老年代占整個堆的4/5;默認值=2
二、方法區內存配置常用參數
初始化的Metaspace大小,
-XX:MetaspaceSize :
Metaspace最大值
-XX:MaxMetaspaceSize
三、線程棧內存配置常用參數
每個線程棧最大值
指令1:-Xss256k
指令2:-XX:ThreadStackSize=256k
注意:
棧設置太大,會導致線程創建減少。
棧設置小,會導致深入不夠,深度的遞歸會導致棧溢出。
建議棧深度設置在3000-5000
四、配置垃圾收集器
Serial垃圾收集器(新生代)
開啟:-XX:+UseSerialGC
關閉:-XX:-UseSerialGC
//新生代使用Serial 老年代則使用SerialOld
ParNew垃圾收集器(新生代)
開啟 -XX:+UseParNewGC
關閉 -XX:-UseParNewGC
//新生代使用功能ParNew 老年代則使用功能CMS
Parallel Scavenge收集器(新生代)
開啟 -XX:+UseParallelOldGC
關閉 -XX:-UseParallelOldGC
//新生代使用功能Parallel Scavenge 老年代將會使用Parallel Old收集器
ParallelOl垃圾收集器(老年代)
開啟 -XX:+UseParallelGC
關閉 -XX:-UseParallelGC
//新生代使用功能Parallel Scavenge 老年代將會使用Parallel Old收集器
CMS垃圾收集器(老年代)
開啟 -XX:+UseConcMarkSweepGC
關閉 -XX:-UseConcMarkSweepGC
G1垃圾收集器
開啟 -XX:+UseG1GC
關閉 -XX:-UseG1GC
五、GC策略配置
GC并行執行線程數
-XX:ParallelGCThreads=16
新生代可容納的最大對象
-XX:PretenureSizeThreshold=1000000 //大于此值的對象直接會分配到老年代,設置為0則沒有限制。 //避免在Eden區和Survivor區發生大量的內存復制,該參數只對Serial和ParNew收集器有效,Parallel Scavenge并不認識該參數
進入老年代的GC年齡
進入老年代最小的GC年齡
-XX:InitialTenuringThreshol=7 //年輕代對象轉換為老年代對象最小年齡值,默認值7,對象在堅持過一次Minor GC之后,年齡就加1,每個對象在堅持過一次Minor GC之后,年齡就增加1
進入老年代最大的GC年齡
-XX:MaxTenuringThreshold=15 //年輕代對象轉換為老年代對象最大年齡值,默認值15
六、GC日志信息配置
配置GC文件路徑
-Xloggc:/data/gclog/gc.log//固定路徑名稱生成 -Xloggc:/home/GCEASY/gc-%t.log //根據時間生成
滾動生成日志
日志文件達到一定大小后,生成另一個文件。須配置Xloggc
開啟 -XX:+UseGCLogFileRotation
關閉 -XX:-UseGCLogFileRotation
-XX:NumberOfGCLogFiles=4 //滾動GC日志文件數,默認0,不滾動 -XX:GCLogFileSize=100k //GC文件滾動大小,需配置UseGCLogFileRotation,設置為0表示僅通過jcmd命令觸發
jmap命令可以獲得運行中的jvm的堆的快照,從而可以離線分析堆,以檢查內存泄漏,檢查一些嚴重影響性能的大對象的創建,檢查系統中什么對象最多,各種對象所占內存的大小。
命令格式:
jmap?[options]?pid
-dump:[live,]format=b,file=filename??
--dump堆到文件,live指明是活著的對象,file指定文件名
因為在dump:live前會進行full gc,因此不加live的堆大小要大于加live堆的大小
-finalizerinfo??打印等待回收對象的信息
-heap??打印堆總結
-histo[:live]??打印堆的對象統計,包括對象數、內存大小等等
-permstat??打印java堆perm區的classloader統計
-F??強制,在jmap?-dump或jmap?-histo中使用,如果pid沒有相應的回復?
-J??提供jvm選項,如:-J-Xms256m
網頁標題:linux釋放jvm命令 linux調整jvm參數
本文地址:http://www.yijiale78.com/article48/doddhhp.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、軟件開發、網站排名、網站改版、微信公眾號、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯