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