Java VM的OOM常常会导致系统异常,停止服务。
通过日志中的类似消息可以判断:
2025-07-29 18:15:11 HTTP JVM: JVMDUMP055I 正在处理转储事件“systhrow”,详细信息“java/lang/OutOfMemoryError”,异常“Java 堆空间”位于 2025/07/29 18:15:11 – 请稍候。
2025-07-29 18:15:40 HTTP JVM: JVMDUMP032I JVM 正在使用“/local/verse2/heapdump.20250729.181511.75896.0002.phd”生成堆转储,以响应事件
2025-07-29 18:15:41 HTTP JVM: JVMDUMP010I 堆转储已写入 /local/verse2/heapdump.20250729.181511.75896.0002.phd
2025-07-29 18:15:42 HTTP JVM: JVMDUMP055I 正在处理转储事件“systhrow”,详细信息为“java/lang/OutOfMemoryError”,异常原因为“Java 堆空间”发生于 2025/07/29 18:15:43 — 请稍候
2025-07-29 18:15:42 HTTP JVM: JVMDUMP032I JVM 正在使用“/local/verse2/javacore.20250729.181511.75896.0003.txt”生成 Java 转储,以响应事件
2025-07-29 18:16:02 HTTP JVM: JVMDUMP010I Java 转储已写入 /local/verse2/javacore.20250729.181511.75896.0003.txt
JVM的默认大小通常是物理内存的1/4。从javacore.txt中可以看到JavaHeap的分配情况:
3MEMUSER | +–Memory Manager (GC): 4,481,040,320 bytes / 79993 allocations
3MEMUSER | | |
4MEMUSER | | +–Java Heap: 4,295,028,736 bytes / 1 allocation
可以通过HeapHero https://heaphero.io/上传PHD文件,进行云分析。

IBM也提供了基于Eclipse的MAT(Memory Analyzer Tool)对Heap堆Dump做分析,分Java 8和Java 21(Serumu)两个版本。