kibana APM监控面板指标解析-I-JVM相关指标

通过这张JVM内存图:

你来看这个指标:

页面一共6块监控图表,分别是:CPU usage、System memory usage、Heap Memory、Non-Heap Memory、Thread Count、Garbage collection per minute,逐个拆解含义、数值解读、业务风险点。

1. CPU usage 容器/进程CPU使用率

指标含义

分为系统级CPU (容器整体)、JVM进程CPU两部分,百分比代表CPU占用比例。

  • System max/avg:容器全部进程CPU峰值、平均值
  • Process max/avg:仅Java业务进程的CPU峰值、平均值

图中数值解读

进程最大CPU 2.0%,平均仅1.2%;容器整体峰值2.1%

业务说明

当前服务CPU压力极低,无计算密集、死循环、频繁GC消耗CPU的问题。

2. System memory usage 容器整机内存使用率

指标含义

容器自身内存配额的占用百分比 ,分母为容器启动时通过docker run --memory=4g指定的最大内存限额(4GB);统计容器内全部内存开销:JVM堆内存 + JVM非堆内存 + 容器系统依赖库 + 容器底层基础进程。

  • Max/Average:容器内存占用峰值、平均值(相对4G容器配额的百分比)

图中数值解读

内存占用峰值、平均值稳定在19%,做数值换算: 容器实际占用内存 = 4G × 19% = 0.76GB ≈ 760MB 仅使用容器4G总配额的1/5左右。

结合JVM指标交叉验证

  1. Heap堆内存:最大限制1GB,实际仅使用0.3GB
  2. Non-Heap非堆内存:实际占用218.1MB
  3. JVM内存合计 ≈ 0.3+0.218 = 0.518GB 剩余约240MB为容器系统库、底层进程占用,和760MB总占用完全匹配。

3. Heap Memory JVM堆内存

指标含义

Java对象存放区域,由-Xms/-Xmx控制,GC回收核心区域;三条曲线:

  1. Avg.used:堆内实际业务对象占用内存
  2. Avg.committed:操作系统已经分配给JVM的堆内存
  3. Avg.limit:堆内存最大上限(你的服务-Xmx=1GB)

图中数值解读

实际使用0.3GB,已分配0.4GB,最大限制1GB

业务说明

堆内存仅使用30%,空闲堆内存充足;内存无持续上涨,不存在堆内存泄漏、堆OOM风险。

4. Non-Heap Memory JVM非堆内存

指标含义

不受-Xmx管控,存储类元数据、线程栈、JIT缓存、NIO堆外内存;两条曲线:

  • Avg.used:非堆实际占用
  • Avg.committed:系统分配给非堆的内存

图中数值解读

实际占用218.1MB,已分配228.7MB

业务说明

SpringBoot常规占用区间,内存平稳无持续爬升;无元空间溢出、堆外内存泄漏问题。

5. Thread Count JVM线程总数

指标含义

当前Java进程存活的所有线程数量,包含业务线程、Tomcat线程池、定时任务、GC后台线程等。

  • Avg.count:线程平均数量
  • Max.count:线程峰值数量

图中数值解读

平均89.9个线程,峰值91个

业务说明

线程数量稳定、波动极小;无无限创建线程、线程池耗尽、线程泄漏问题。

6. Garbage collection per minute 每分钟GC次数

指标含义

统计每分钟发生的两类GC频次:

  1. Copy:年轻代Minor GC(Eden区满触发)
  2. MarkSweepCompact:老年代Full GC(全局STW,严重影响接口性能)

图中数值解读

Copy、Full GC每分钟次数均接近0

业务说明

堆内存充足,对象创建速度慢,几乎不触发GC;无频繁GC、Full GC停顿导致接口超时的性能隐患。

整体服务性能总结

当前服务资源极度空闲:CPU、容器内存、JVM堆内存、线程、GC全部无压力,不存在内存泄漏、GC卡顿、资源耗尽类故障风险。

相关推荐
代码不停5 小时前
Spring Boot 配置文件
spring boot·后端
IT_陈寒6 小时前
为什么我的Java Stream操作总是默默吃掉异常?
前端·人工智能·后端
江湖十年6 小时前
Go 虚荣域名详解:我用 go get -x 抓了个包,终于看清了 Go 工具链“对暗号”的全过程
后端·面试·go
Lost of 程序猿6 小时前
船岸数据同步链路实战:SendFlag、单调版本号与断网三天后的续传
后端·c#·asp.net
卷无止境6 小时前
大模型如何调用工具,一次讲清背后的技术门道
后端·python
90后的晨仔6 小时前
Python 进阶:海象运算符与模式匹配,让你的代码更优雅!
后端
卷无止境13 小时前
智能体开发环境ADE浅析,编程工具的下一次范式跃迁
后端·python
码事漫谈15 小时前
DeepSeek 这波操作很凶
后端
Bs_MoneyMagnet16 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
子兮曰18 小时前
Bun v1.4.1 深度解析:从 Zig 到 Rust,一场 11 天、64 个 AI 代理的语言迁徙
前端·后端·bun