JDK 自带监控工具

一、命令行工具

JDK 提供了一些用于监控和诊断 Java 进程的命令行工具:

  1. jps(Java Process Status)
    • 作用:列出当前运行的 Java 进程及其进程 ID (PID)
    • 示例:
      jps -l
      
  2. jstat(Java Statistics Monitoring)
    • 作用:监控 JVM 内存使用情况、GC(垃圾回收)情况等
    • 常用命令:
      jstat -gc <pid> 1000 10  # 每秒查看 GC 状态,输出 10 次
      
  3. jmap(Memory Map)
    • 作用:查看 Java 堆内存使用情况,导出 Heap Dump
    • 示例:
      jmap -heap <pid>
      jmap -dump:format=b,file=heap_dump.hprof <pid>
      
  4. jstack(Java Stack Trace)
    • 作用:查看 Java 线程堆栈信息,分析死锁
    • 示例:
      jstack -l <pid>
      
  5. jcmd(Java Command)
    • 作用:执行多种 JVM 诊断命令,综合替代 jmapjstackjstat
    • 示例:
      jcmd <pid> VM.system_properties  # 查看系统属性
      jcmd <pid> GC.heap_dump heap_dump.hprof  # 生成 Heap Dump
      
  6. jinfo(Java Configuration Info)
    • 作用:获取 JVM 运行时配置信息,如 JVM 参数、系统属性等
    • 示例:
      jinfo -flags <pid>
      

二、可视化监控工具

JDK 还提供了一些 GUI 工具来进行更直观的监控:

  1. JConsole(Java Monitoring & Management Console)
    • 作用:监控 CPU、内存、GC、线程、MBean 等
    • 启动:
      jconsole
      
    • 可直接连接本地 Java 进程或远程 JVM。
  2. VisualVM(All-in-One 监控工具)
    • 作用:分析 Java 进程的内存、GC、线程、Heap Dump 等
    • 启动:
      jvisualvm
      
    • 可安装插件扩展功能,如 BTrace 进行动态字节码分析。

三、Flight Recorder & Mission Control

  1. Java Flight Recorder(JFR)
    • 作用:JDK 内置的性能分析工具,低开销地记录 JVM 事件数据(GC、CPU、线程等)
    • 启动 JFR:
      java -XX:StartFlightRecording=name=myrecording,duration=60s,filename=myrecording.jfr
      
    • 也可以通过 jcmd 启动:
      jcmd <pid> JFR.start name=MyRecording duration=60s filename=myrecording.jfr
      
  2. Java Mission Control(JMC)
    • 作用:可视化分析 JFR 记录的数据,深度分析 JVM 运行状态
    • 启动:
      jmc
      

总结

工具作用适用场景
jps查看 Java 进程确定 JVM 进程 PID
jstat监控 GC 和内存了解 JVM 内存分布和回收情况
jmap导出 Heap Dump分析内存泄漏
jstack查看线程堆栈排查死锁、卡死
jcmd综合 JVM 诊断统一管理多个 JVM 命令
jinfo查看 JVM 参数运行时查看 JVM 配置
JConsoleGUI 监控实时监控 CPU、内存、GC 等
VisualVMGUI 诊断工具远程监控、性能分析
JFR低开销性能分析生产环境下 JVM 运行分析
JMC可视化分析 JFR 记录诊断性能瓶颈

这些工具在 Java 开发、生产环境监控和故障排查中都非常有用,建议熟练掌握!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值