跳到主要内容

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)两个版本。

Windows版本下载连接:https://www14.software.ibm.com/cgi-bin/weblap/lap.pl?popup=Y&la_formnum=&li_formnum=L-NCAN-BQGBQN&accepted_url=https://public.dhe.ibm.com/software/websphere/appserv/support/tools/iema/com.ibm.java.diagnostics.memory.analyzer.MemoryAnalyzer.ibmjava-win32.win32.x86_64.zip

留下回复