天天看點

jvisualvm分析linux環境下jvm記憶體溢出

jvisualvm分析linux環境下jvm記憶體溢出

一.安裝jmap

第一次使用需要安裝jmap指令。

1.安裝openjdk-devel-debug

yum -y install java-1.8.0-openjdk-devel.x86_64      

看好是以上指令而不是下面的。

yum install -y java-1.8.0-openjdk-devel-debug      

成功後。

jvisualvm分析linux環境下jvm記憶體溢出

2.安裝jmap

yum -y whatprovides '*/jmap'      
jvisualvm分析linux環境下jvm記憶體溢出

進入紅框内,如果檢視有jmap,發現安裝成功。

jvisualvm分析linux環境下jvm記憶體溢出

二.使用jmap dump堆日志

檢視所要dump的java程式pid。

ps -ef|grep java      
jvisualvm分析linux環境下jvm記憶體溢出

執行以下指令。

jmap -dump:format=b,file=/heap.bin 61718      

再在填寫目錄生成heap.bin檔案(與hprof相同),然後就可以使用MAT進行分析了。

三.監控oom

但是這裡有一個問題,當jmap時,應用暫停,這是生産環境不允許的,那麼我們使用記憶體轉儲,當發生oom時,直接将日志轉到硬碟中。

-XX:+HeapDumpOnOutOfMemoryError