垃圾收集调试的必要 JVM 工具

主要观点:Java 垃圾回收对程序员是福音,但在生产环境中可能引发问题,调优和故障排除是重要技能,需了解相关任务、术语和算法,可通过多种工具获取 GC 性能信息。
关键信息

  • 可通过命令行开关激活 GC 日志记录,不同 JVM 版本和算法日志格式可能不同。
  • JDK 包含多种用于故障排除和监控的工具,如 jvisualvm 可用于监控 JVM 性能,jstat 可收集运行时统计信息,jcmd 可获取 JVM 事件。
  • 除 JDK 工具外,还有外部工具如 IBM GC 和 Memory Visualizer(GCMV)和 GCeasy,GCMV 需手动选择指标较耗时,GCeasy 能在短时间内提供详细分析和建议,适合常规 GC 监控且可自动化。
    重要细节
  • 对于 Java 8 及更早版本,使用-XX:+PrintGCDetails -Xloggc:<gc-log-file-path>激活 GC 日志;对于 Java 9 及之后版本,使用-Xlog:gc*:file=<gc-log-file-path>
  • jvisualvm 是基于 GUI 的工具,可显示运行程序信息,通过堆图和 CPU 使用率图监控 GC 情况,可请求应用执行 GC 并监控资源使用。
  • jstat 有多种选项,如-gc获取详细 GC 统计,-gcutil获取各内存池使用百分比和 GC 活动总结,-gccapacity获取各内存池的最小、最大和当前大小。
  • jcmd 可通过jcmd 6504 VM.events > events.txt获取 JVM 事件,包括 GC 信息。
  • GCMV 是综合 GC 日志分析器,需手动选择指标,GCeasy 能快速提供详细分析和建议,可自动进行常规 GC 监控。
阅读 217
0 条评论