獲取JVM的dump文件的兩種方式
1. JVM啓動時增加兩個參數:
#出現 OOME 時生成堆 dump:
-XX:+HeapDumpOnOutOfMemoryError
#生成堆文件地址:
-XX:HeapDumpPath=/home/liuke/jvmlogs/
2. 發現程序異常前通過執行指令,直接生成當前JVM的dmp文件,6214是指JVM的進程號
jmap -dump:format=b,file=serviceDump.dat 6214
由於第一種方式是一種事後方式,需要等待當前JVM出現問題後才能生成dmp文件,實時性不高,第二種方式在執行時,JVM是暫停服務的,所以對線上的運行會產生影響。所以建議第一種方式。