JVM监控

JVM监控

一、内存使用情况

  • 堆内存:Eden区、Survivor区、Old区使用情况
  • 非堆内存:Metaspace(元空间)、Code Cache、Compressed Class Space
  • 直接内存(Direct Buffer)
  • 内存池详情:各区域的大小、使用量、峰值
  • GC情况:Young GC、Full GC频率、耗时

二、线程信息

  • 线程数量:当前活动线程数、峰值线程数
  • 线程状态:RUNNABLE、BLOCKED、WAITING、TIMED_WAITING等
  • 线程堆栈:死锁检测、热点方法分析
  • 守护线程与非守护线程统计

三、垃圾回收(GC)

  • GC次数:Minor GC、Major GC/Full GC次数
  • GC耗时:各次GC暂停时间、总GC时间占比
  • GC原因:分配失败、System.gc()调用等
  • 回收效率:各代内存回收效果

四、类加载信息

  • 已加载类数量
  • 已卸载类数量
  • 类加载器:各加载器加载的类数量
  • 编译信息:JIT编译的方法数、耗时

五、运行时信息

  • JVM版本、启动参数、运行时间
  • CPU使用率:进程CPU占用、系统CPU负载
  • 系统负载:系统平均负载

六、性能指标

  • CPU时间:用户态、内核态CPU时间
  • 文件描述符:打开的文件描述符数量
  • 网络连接:TCP连接数
  • 锁竞争:监视器锁竞争情况

常用监控工具

  1. 命令行工具:jstat、jmap、jstack、jcmd
  2. 可视化工具:JConsole、VisualVM、JMC(Java Mission Control)
  3. APM工具:Arthas、Prometheus + Grafana、SkyWalking、Pinpoint
  4. JDK内置:JMX(Java Management Extensions)

监控建议

  • 生产环境建议使用时序数据库(如Prometheus)进行指标收集
  • 设置合理的告警阈值(如GC时间过长、内存使用率过高等)
  • 结合业务日志APM工具进行全链路监控

这些监控信息可以帮助开发者及时发现内存泄漏、线程死锁、GC过度等问题,保障应用稳定运行。

posted @ 2026-01-26 19:22  deyang  阅读(4)  评论(0)    收藏  举报