java api 中获取JVM信息相关方法的Demo

本文介绍了如何使用Java的java.lang.management包监控JVM内存,以确保业务系统的稳定性。通过编码获取JVM信息并输出到日志,便于在Grafana等平台上进行数据监控。文中提供了一个DEMO,演示了每秒创建字节数组并监控堆和非堆内存的变化,与Java VisualVM的监控结果进行了对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

为了保障业务系统的连续性,需要监控服务器JVM内存使用情况,防止因系统异常出现宕机。JDK自带的Java VirsualVM是个很好的监控及分析JVM状况的工具,但生产环境并不适用。生产环境数据监控我司使用的是Grafana平台,通过清洗来自日志文件的指标数据,生成实时图像。这就需要通过编码的方式获取JVM的信息,然后打印到日志里。java.lang.management包提供类方法恰好可以满足我的需求。

java.lang.management包相关用法简介

1, ManageFactory类的静态方法getMemoryMXBean()返回包含JVM内存信息的对象MemoryMXBean
2, MemoryMXBean对象包含的内存信息分为堆内存信息(Heap)和非堆内存信息(Non-heap Memory),分别通过getHeapMemoryUsage()getNonHeapMemoryUsage()方法获取,返回对象类型都是MemoryUsage
3, MemoryUsage类中包含四个不同的变量

  • init 启动时JVM向操作系统请求的内存容量,单位byte
  • max JVM能够管理的最大内存容量,单位byte,如果定义了运行时也可能随时间变化
  • committed JVM保证可以使用的内存容量,单位byte,运行时会随时间
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值