jvm工具jmap命令筆記

2021-09-28 22:56:54 字數 1784 閱讀 3312

指定64位機使用

jmap -j-d64 -heap pid
輸出jvm的heap內容到檔案加live是只輸出存活物件

jmap -dump:live,format=b,file=pid-1949.txt 1949
檢視準備**的物件資訊

jmap -finalizerinfo 1949
檢視堆記憶體配置資訊

jmap -heap 1949
attaching to process id 1949, please wait...

debugger attached successfully.

server compiler detected.

jvm version is 25.121-b13

using parallel threads in the new generation.

using thread-local object allocation.

concurrent mark-sweep gc

heap configuration:

minheapfreeratio = 40 //最小空閒率

maxheapfreeratio = 70 //最大空閒率

maxheapsize = 6442450944 (6144.0mb) //最大堆記憶體大小

newsize = 3221225472 (3072.0mb) //年輕代大小

maxnewsize = 3221225472 (3072.0mb) //最大年輕代大小

oldsize = 3221225472 (3072.0mb) //年老代大小

newratio = 1 //年輕代(eden+2*survivor)和年老代的比值 1表示 年輕代:年老代=1:1,即年輕代占堆大小的1/2

survivorratio = 8 //兩個survivor和eden的比 8 表示survivor:eden=2:8

metaspacesize = 67108864 (64.0mb) //初始化metasapce大小

compressedclassspacesize = 536870912 (512.0mb)

maxmetaspacesize = 134217728 (128.0mb) //最大metaspace大小

g1heapregionsize = 0 (0.0mb) //g1**塊區域大小

heap usage:

-------

檢視堆記憶體物件個數資訊。:live表示只列出存活物件資訊

jmap -histo:live 1949
[c 等價於 char

[s 等價於 short

[i 等價於 int

[b 等價於 byte

[[i 等價於 int

列出持久層資訊

jmap -permstat 1949

jvm記憶體洩露分析方法 jmap

使用監控工具發現記憶體使用不斷增加,則有可能存在記憶體洩露,記憶體洩露可以使用jmap工具進行分析。jmap命令可以獲得執行中的jvm的堆的快照,從而可以離線分析堆,以檢查記憶體洩漏,檢查一些嚴重影響效能的大物件的建立,檢查系統中什麼物件最多,各種物件所佔記憶體的大小等等,可以使用jmap生成hea...

jmap命令使用

jmap用於檢視堆記憶體使用情況,一般結合jhat使用。jmap permstat pid 列印程序的類載入器和類載入器載入的持久代物件資訊,輸出 類載入器名稱 物件是否存活 不可靠 物件位址 父類載入器 已載入的類大小等資訊,使用jmap heap pid檢視程序堆記憶體使用情況,包括使用的gc演...

java記憶體溢位分析工具 jmap

cd usr local jdk1.6.0 37 bin jmap histo pid a.log pid tomcat程序id a.log 要生成的檔名 注意 解決系統tomcat老是記憶體撐到頭,然後崩潰的問題時,使用到了jmap 在環境是linux jdk1.5以上,這個工具是自帶的,路徑在j...