跟我学系列之JVM远程监控编写(一)

简介: 从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了许多MXBean的接口类,可以很方便的获取到JVM的内存、GC、线程、锁、class、甚至操作系统层面的各种信息,本文就简单的介绍一种利用JMX对JAVA进程进行CPU、堆内存使用的监控。

从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了许多MXBean的接口类,可以很方便的获取到JVM的内存、GC、线程、锁、class、甚至操作系统层面的各种信息,本文就简单的介绍一种利用JMX对JAVA进程进行CPU、堆内存使用的监控。很多朋友都在说,其实真没必要,现在有很多的工具都可以监控,比如:JMap,JHat,MAT,VIsualVM,JConsole工具都可以,但是有些时候Jconsole不一定能监控到作为系统服务的java进程,在这里我给大家做一个入门介绍。

JMX(Java Management Extensions),即JAVA管理扩展,用来监视和管理JVM以及其运行的操作系统。目前java平台主要提供了下图所示的9个MXBean, 各个MXBean的作用根据类名大概能猜出几分,具体可查API。

ClassLoadingMXBean
MemoryMXBean
ThreadMXBean
CompilationMXBean
GarbageCollectorMXBeans
MemoryPoolMXBeans
OperatingSystemMXBean
RuntimeMXBean
MemoryManagerMXBeans

java.lang.management包中的mxbean提供了基本的功能,在sum.com.management中对某些功能有所增强,当然我们也可以根据JMX规范提供自己的MXBean。

在正式编码之前,我们必须要得到JMXConnector并创建MBeanServerConnnection,有了这个connection我们就可以利用ManagementFactory创建需要的MXBean了,类依赖图如下:

代码如下:

然后,采集memory的数据就比较简单了,直接调用API获取:

采集CPU利用率需要自己计算一下,因为API只提供了获取cpu的使用时间,我得在两次系统时间间隔内获取两次CPU的使用时间,得到在该时间间隔内cpu使用的时间,相除即得到CPU的使用率,当然误差肯定存在。

如果想收集本地的JVM信息也可以这样写:

目录
相关文章
|
17天前
|
算法 安全 Java
【C/C++ 实用工具】静态代码检测工具和平台的一览
【C/C++ 实用工具】静态代码检测工具和平台的一览
46 0
|
17天前
|
监控 Oracle Java
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,探索各大JVM虚拟机特色 —— JVM故障排除指南(先导篇)
《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,探索各大JVM虚拟机特色 —— JVM故障排除指南(先导篇)
47 0
|
17天前
|
Arthas Prometheus 监控
JVM工作原理与实战(二十九):监控内存泄漏的工具
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了解决内存溢出的步骤、Top命令、VisualVM、Arthas、Prometheus + Grafana等内容。
29 0
|
17天前
|
前端开发 JavaScript Java
基于JavaWeb实现智慧菜市场系统的设计与实现程序
基于JavaWeb实现智慧菜市场系统的设计与实现程序
|
12月前
|
小程序 前端开发 IDE
智能排班系统 【web前端/小程序结构介绍+开发环境介绍+项目启动】
智能排班系统 【web前端/小程序结构介绍+开发环境介绍+项目启动】
105 1
|
安全 IDE Java
【Java应用诊断工具】「BTrace」基本概念和原理的介绍(1)
【Java应用诊断工具】「BTrace」基本概念和原理的介绍(1)
126 0
|
移动开发 JSON 小程序
【小程序开篇】小程序架构和配置
【小程序开篇】小程序架构和配置
249 0
【小程序开篇】小程序架构和配置
|
Java Unix Linux
Java系统程序Bug解决方法论(一) - 教程简介
Java系统程序Bug解决方法论(一) - 教程简介
126 0
|
Java 数据库
JSP+Servlet培训班作业管理系统[23]–番外篇之Java Web日志
本文目录 1. 本章任务 2. 基础类库 3. 自定义异常处理工具类 4. 测试验证
143 0
JSP+Servlet培训班作业管理系统[23]–番外篇之Java Web日志
JavaWeb技术内幕七:JVM体系结构和工作方式
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/81501369 这位大侠,这是我的公众号:程序员江湖。