Java排错

  • jstack: 查看线程堆栈
  • jmap: 查看内存信息
  • jhat: 分析由jmap命令得到的内存heap dump文件,识别内存泄露或其他内存问题。
  • jstat: 查看JVM运行状态,如GC情况
  • JConsole:
    • 内存监控:监控堆和非堆内存的使用情况,包括代码缓存、Java堆、元空间等。
    • 线程监控:监控线程数量、死锁检测。
    • 类加载监控:监控加载、卸载的类数量。
    • CPU使用监控:监控Java虚拟机的CPU使用情况。
    • MBean监控:允许用户访问和操作MBeans,进行应用程序或资源的管理。
  • VisualVM:
    • 包含JConsole的所有监控功能:VisualVM提供JConsole的所有基本监控功能。
    • 更强大的性能分析工具:提供CPU和内存性能分析器,可以对Java应用程序进行更详细的性能分析。
    • 线程转储分析:可以生成和分析线程转储,帮助诊断线程问题。
    • 堆转储分析:可以生成和分析堆转储,用于内存泄露检测和内存分析。
    • 插件扩展:支持通过插件扩展功能,提供更多的监控和分析选项。
  • MAT(Memory Analyzer Tool):分析由jmap命令得到的内存heap dump文件,识别内存泄露或其他内存问题。
  • Spring Actuator:
    • 健康检查(Health Check):提供应用的健康状态,包括数据库连接、磁盘空间、自定义健康指标等。
    • 度量指标(Metrics):收集和展示应用的各种度量信息,如JVM内存使用、垃圾回收统计、HTTP请求统计等。
    • 环境信息(Env):显示应用的环境属性,包括配置参数、系统属性、环境变量等。
    • 日志级别管理(Loggers):动态调整日志级别,有助于在排错时增加日志的详细度而无需重启应用。
    • 线程状态(Threads):提供当前应用中线程的详细信息,生成thread dump有助于识别死锁和高CPU使用等问题。
    • 内存信息(Heap):生成并下载heap dump文件,帮助诊断内存问题。
    • 应用信息(Application):显示应用的基本信息,如应用名称、版本、启动时间、JVM信息等。