-XX:+HeapDumpOnOutOfMemoryError JVM 就会在服务进程发生内存泄露时抓拍下当时的内存状态,也就是我们想要的堆转储文件。默认会在项目根目录下生成*.hprof文件可供分析。-XX:HeapDumpPath=/opt/bak/logs/diagon/analysis-model-ipb 设置服务发生内存泄漏下当前内存状态生成堆转储hprof文件的位置-Xloggc:/opt/bak/logs/diagon/analysis-model-ipb/ipb_gc.log 设置gc日志信息保存文件的位置-XX:+PrintGCDetails 打印full gc的详细信息。-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)-XX:+PreserveFramePointer java 火焰图,根据高度来找cpu热点的。-Xms128m-Xmx1024m
具体截图如下:
GC 日志输出:
可以通过MAT内存分析工具对 hprof文件进行内存分析
具体详见:Eclipse Memory Analyzer 堆转储文件分析
对应的文档路径:E:\Learning materials\999-技术文档\013-Linux(内存分析Mat)