JDK自帶的jstat命令該怎么用詳解
一、基礎(chǔ)語(yǔ)法
jstat - [-t] [-h] [ []]
option:監(jiān)控類型(如-gcutil監(jiān)控GC百分比)。vmid:Java進(jìn)程ID(通過(guò)jps獲取)。interval:采樣間隔(單位毫秒或秒,默認(rèn)毫秒)。count:采樣次數(shù)(默認(rèn)無(wú)限次)。-t:添加時(shí)間戳列。-h:每輸出``行后顯示表頭。
二、常用選項(xiàng)及輸出解讀
監(jiān)控GC及內(nèi)存使用(最常用)
- 命令:
jstat -gcutil 1000 10 每秒采樣一次,共10次
- 輸出示例:
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.0 12.5 78.3 35.2 89.6 85.4 45 0.32 3 0.15 0.47
- 關(guān)鍵字段:
- S0/S1:Survivor區(qū)使用率(過(guò)高可能Survivor不足)。
- E:Eden區(qū)使用率(接近100%觸發(fā)Young GC)。
- O:老年代使用率(持續(xù)增長(zhǎng)可能內(nèi)存泄漏)。
- YGC/YGCT:Young GC次數(shù)及總耗時(shí)(頻繁Young GC需增大新生代)。
- FGC/FGCT:Full GC次數(shù)及總耗時(shí)(頻繁Full GC需優(yōu)化老年代)。
查看內(nèi)存容量細(xì)節(jié)
- 命令:
jstat -gc 顯示各區(qū)域大?。ㄗ止?jié))
- 輸出示例:
S0C S1C S0U S1U EC EU OC OU MC MU YGC YGCT FGC FGCT GCT 64 64 0 16 1024 800 4096 1500 2560 2000 12 0.08 3 0.15 0.23
- 關(guān)鍵字段:
- S0C/S1C:Survivor區(qū)容量(單位KB)。
- EC/EU:Eden區(qū)容量及使用量。
- OC/O:老年代容量及使用量。
分析類加載
- 命令:
jstat -class 查看類加載/卸載情況
- 輸出示例:
Loaded Bytes Unloaded Bytes Time 12345 2345.6 0 0.0 0.52
- 關(guān)鍵字段:
- Loaded:已加載類數(shù)量(突增可能動(dòng)態(tài)生成類)。
- Unloaded:卸載類數(shù)量(非0可能類加載泄漏)。
追蹤GC原因
- 命令:
jstat -gccause 顯示最近一次GC原因
- 輸出示例:
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC 0.0 12.5 78.3 35.2 89.6 85.4 45 0.32 3 0.15 0.47 Allocation Failure No GC
- 關(guān)鍵字段:
- LGCC:最近一次GC原因(如
Allocation Failure表示Eden區(qū)滿)。
- LGCC:最近一次GC原因(如
三、典型場(chǎng)景應(yīng)用
診斷Young GC頻繁
jstat -gcutil 1000 持續(xù)監(jiān)控Eden區(qū)使用率
- 問(wèn)題表現(xiàn):
E列接近100%,YGC次數(shù)快速增長(zhǎng)。 - 解決方案:增大新生代(
-Xmn)或調(diào)整Survivor比例(-XX:SurvivorRatio)。
定位內(nèi)存泄漏
jstat -gc 60000 10 每分鐘采樣,觀察老年代增長(zhǎng)
- 問(wèn)題表現(xiàn):
OU持續(xù)增長(zhǎng)且FGC頻繁。 - 解決方案:生成堆轉(zhuǎn)儲(chǔ)(
jmap -dump),用MAT分析泄漏對(duì)象。
分析元空間溢出
jstat -gcutil 查看Metaspace使用率
- 問(wèn)題表現(xiàn):
M列接近100%。 - 解決方案:限制元空間大?。?code>-XX:MaxMetaspaceSize=256m)。
四、注意事項(xiàng)
- 遠(yuǎn)程監(jiān)控:
- 需配置
jstatd服務(wù)(JDK 8后推薦用jcmd替代)。 - 命令示例:
jstat -gcutil @ 1000 遠(yuǎn)程監(jiān)控
- 需配置
- 輸出解讀:
- 百分比列(如
-gcutil)更直觀,容量列(如-gc)適合分析絕對(duì)值。 - 結(jié)合
-t參數(shù)添加時(shí)間戳,便于關(guān)聯(lián)業(yè)務(wù)峰值。
- 百分比列(如
- 與其他工具聯(lián)動(dòng):
- 發(fā)現(xiàn)GC異常后,用
jmap -dump生成堆轉(zhuǎn)儲(chǔ),再用MAT分析對(duì)象分布。 - 長(zhǎng)期監(jiān)控可通過(guò)腳本定期采集
jstat數(shù)據(jù),結(jié)合awk分析趨勢(shì)。
- 發(fā)現(xiàn)GC異常后,用
五、完整選項(xiàng)參考
| 選項(xiàng) | 功能 | 典型輸出字段 |
|---|---|---|
-gcnew | 新生代GC詳情 | TT(對(duì)象年齡閾值)、DSS(Survivor目標(biāo)大?。?/td> |
-gcold | 老年代GC詳情 | MU(元空間使用量)、FGCT(Full GC總耗時(shí)) |
-printcompilation | JIT編譯統(tǒng)計(jì) | Compiled(編譯方法數(shù))、Failed(編譯失敗數(shù)) |
通過(guò)靈活組合選項(xiàng)和參數(shù),jstat可成為JVM性能調(diào)優(yōu)的核心工具。建議結(jié)合具體問(wèn)題選擇監(jiān)控維度,并持續(xù)觀察數(shù)據(jù)變化。
到此這篇關(guān)于JDK自帶的jstat命令該怎么用的文章就介紹到這了,更多相關(guān)JDK自帶jstat命令使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java設(shè)計(jì)模式之中介者模式(Mediator Pattern)簡(jiǎn)介
這篇文章主要介紹了Java設(shè)計(jì)模式之中介者模式(Mediator Pattern),需要的朋友可以參考下2014-07-07
詳解Spring Cloud Config采用Git存儲(chǔ)時(shí)兩種常用的配置策略
這篇文章主要介紹了詳解Spring Cloud Config采用Git存儲(chǔ)時(shí)兩種常用的配置策略,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
java的新特性反射機(jī)制應(yīng)用及操作示例詳解
這篇文章主要為大家介紹了java的新特性反射機(jī)制的操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
SpringBoot集成ZXing實(shí)現(xiàn)二維碼的生成與讀取功能
本教程將詳細(xì)講解如何在 Spring Boot 項(xiàng)目中集成 ZXing 庫(kù)實(shí)現(xiàn)二維碼的生成(返回 Base64 編碼)和讀?。ń馕鰣D片的二維碼)功能,并覆蓋常見異常處理、參數(shù)優(yōu)化等實(shí)戰(zhàn)要點(diǎn),適合 Java 開發(fā)新手快速上手,需要的朋友可以參考下2026-03-03
springboot集成junit編寫單元測(cè)試實(shí)戰(zhàn)
在做單元測(cè)試時(shí),代碼覆蓋率常常被拿來(lái)作為衡量測(cè)試好壞的指標(biāo),本文主要介紹了springboot集成junit編寫單元測(cè)試實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
SpringMVC通過(guò)模型視圖ModelAndView渲染視圖的實(shí)現(xiàn)
這篇文章主要介紹了SpringMVC通過(guò)模型視圖ModelAndView渲染視圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
springboot+quartz以持久化的方式實(shí)現(xiàn)定時(shí)任務(wù)的代碼
這篇文章主要介紹了springboot+quartz以持久化的方式實(shí)現(xiàn)定時(shí)任務(wù)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07

