4 jmap + MAT 实战内存溢出
堆区
非堆区
5 导出内存映像文件
OutofMemory(OOM)相关的选项
如果程序发生了OOM后,JVM可以配置一些选项来做些善后工作,比如把内存给dump下来,或者自动采取一些别的动作
- -XX:+HeapDumpOnOutOfMemoryError
在内存出现OOM的时候,把Heap转存(Dump)到文件以便后续分析,文件名通常是java_pid<pid>.hprof
- -XX:HeapDumpPath=
指定heap转存文件的存储路径,需要指定的路径下有足够的空间来保存转存文件 - -XX:OnOutOfMemoryError
指定一个可行性程序或者脚本的路径,当发生OOM的时候,去执行这个脚本
内存溢出自动导出
- -XX:+ HeapDumpOnOutOfMemoryError
- -XX:HeapDumpPath=./
使用jmap命令手动导出
jmap
option : -heap , -clstats , -dump: , -F