-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)