天天看點

jmap、 jhat 分析堆記憶體溢出

  1. 檢視該程序下堆記憶體的使用情況

    jmap -heap 1963(程序号)

  2. 快速定位記憶體洩露的方法:

    jmap -histo:live 1963

jmap -histo:live 1963 >1.txt 将資訊輸出到指定檔案中

jmap、 jhat 分析堆記憶體溢出

可以找到造成記憶體溢出的具體方法。

3.還可以使用jhat分析記憶體溢出的原因

使用dump記憶體資訊到heap.bin檔案

jmap -dump:live,format=b,file=heap.bin 1963(程序号)

jmap、 jhat 分析堆記憶體溢出

使用jhat 對heap.bin 檔案進行分析

jhat -J-mx512m heap.bin 如果解析過程中出現記憶體不足,需要加大記憶體如:jhat -J-mx800m heap.bin

jmap、 jhat 分析堆記憶體溢出

在通過浏覽器通路 http://192.168.5.105:7000/ 即可看到分析結果

4.jstat 監視垃圾回收(GC)時間,次數

jmap、 jhat 分析堆記憶體溢出

S0: 幸存區0

S1: 幸存區1

E:年輕代

O:年老代

M:持久代

(以上都是已使用所占百分比)

YGC : 年輕代YGC的次數

YGCT :年輕代YGC所消耗的時間

FGC : 年老代full GC的次數

FGCT :年老代full GC所消耗的時間

GCT : 用于GC所消耗的總時間

jstat動态檢視垃圾回收的情況:

jmap、 jhat 分析堆記憶體溢出

每隔3s鐘采集一次資料,采集10次。