尧图精选

Java/JVM 常见诊断文件对比

🕒 发布时间:2026/9/7 19:55:56 📁 来源:尧图网络
Java/JVM 常见故障诊断文件速查表Java 应用出现异常、OOM、频繁 GC 或 JVM 崩溃时通常会接触到多种日志和 Dump 文件。不同文件记录的是不同层面的现场信息不能混用。下面对常见的应用日志、GC 日志、Fatal Error Log、Heap Dump、Crash Dump 和 JFR 进行统一对比。特性应用日志GC日志hs_err_pidHeap Dump.hprofCrash Dump.mdmp/coreJFR.jfr主要来源Logback、Log4j2 等JVM GC 日志HotSpot Fatal ErrorJVM Heap Dump操作系统 / 调试器Java Flight Recorder生成时机应用运行期间JVM 运行、GC 发生时JVM 发生致命错误时手动导出或配置 OOM 自动生成进程 / JVM native crash 时运行过程中持续或按需录制常见生成方式日志框架配置-Xlog:gc*JVM 自动生成jcmd GC.heap_dump、jmap、-XX:HeapDumpOnOutOfMemoryErrorWinDbg、系统 Core Dump 等jcmd JFR.start/dump、-XX:StartFlightRecording主要内容业务上下文、异常信息GC 事件、堆变化、暂停时间崩溃线程、Native 栈、JVM / 系统状态Java 堆对象及引用关系进程内存、线程、Native 状态CPU、GC、线程、锁、对象分配、I/O 等事件文件大小KBGB视日志量而定通常较小通常较小通常很大通常很大可控常用分析工具文本编辑器、日志平台文本、GC 分析工具文本编辑器Eclipse MAT、VisualVMWinDbg、gdb / lldb 等JDK Mission Control、jfr最擅长业务异常定位GC 性能与内存趋势分析JVM / Native 崩溃初步定位OOM、内存泄漏、大对象、引用链分析Native Crash 深度分析性能、CPU、GC、锁、I/O、线程综合分析是否适合定位对象泄漏间接只能看趋势通常不适合非常适合不以此为主可观察分配和增长趋势典型问题“业务为什么报错”“为什么 GC 这么频繁”“JVM 为什么崩了”“谁把堆内存占满了”“Native 层为什么崩了”“系统为什么慢、卡、CPU 高”可以简单记忆业务问题 ↓ 应用日志 GC问题 ↓ gc.log JVM致命崩溃 ↓ hs_err_pid Java堆问题 ↓ .hprof Native崩溃 ↓ .mdmp / core 综合性能现场 ↓ JFR核心区别可以概括为日志看“发生过什么”Heap Dump 看“堆里有什么、谁引用谁”Crash Dump 看“进程 / Native 层崩溃现场”JFR 更适合还原一段时间内 JVM 的综合运行状态。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →