橘子学JVM之GUI监控01之jconsole

一、概述

JVM监控及诊断工具-GUI篇

1、工具概述

使用之前的命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限:
● 1.无法获取方法级别的分析数据,如方法间的调用关系、各方法的调用次数和调用时间等(这对定位应用性能瓶颈至关重要)。
● 2.要求用户登录到目标 Java 应用所在的宿主机上,使用起来不是很方便。
● 3.分析数据通过终端输出,结果展示不够直观。
为此,JDK提供了一些内存泄漏的分析工具,如jconsole,jvisualvm等,用于辅助开发人员定位问题,但是这些工具很多时候并不足以满足快速定位的需求。所以这里我们介绍的工具相对多一些、丰富一些。

JDK自带的工具
● jconsole:JDK自带的可视化监控工具。查看Java应用程序的运行概况、监控堆信息、永久区(或元空间)使用情况、类加载情况等
● Visual VM:Visual VM是一个工具,它提供了一个可视界面,用于查看Java虚拟机上运行的基于Java技术的应用程序的详细信息。
● JMC:Java Mission Control,内置Java Flight Recorder。能够以极低的性能开销收集Java虚拟机的性能数据。

第三方工具
● MAT:MAT(Memory Analyzer Tool)是基于Eclipse的内存分析工具,是一个快速、功能丰富的Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗
● JProfiler:商业软件,需要付费。功能强大。

2、JConsole

jconsole:从Java5开始,在JDK中自带的java监控和管理控制台。用于对JVM中内存、线程和类等的监控,是一个基于JMX(java management extensions)的GUI性能监控工具。

官方地址:https://docs.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html

2.1、先开一个程序

/**
 * @author: levi
 * @description: -Xms600m -Xmx600m -XX:SurvivorRatio=8  堆空间初始和最大值设置为60m,s区和eden区的比例为8:1:1
 * @date: 2022-10-3 20:10
 * @version: 1.0
 */
public class GCtest {
    // 100KB大小
    static final int _100KB = 1024 * 100;
    public static void main(String[] args) {
        List<byte[]> list = new ArrayList<>();
        for (int i = 0; i < 1000; i++) {
            // 每120毫秒就添加100KB进这个集合里面
            byte[] arr = new byte[_100KB];
            list.add(arr);
            try {
                Thread.sleep(60);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

2.2、然后开启jconsole

开启jconsole的方法也很简单,只要你配置了jdk的环境变量,那你就能在cmd窗口输入jconsole然后回车就能开启你的jconsole窗口了。
在这里插入图片描述
我们此时点击新建连接就能看到一个进程列表。这个就类似jps会列出所有的进程。
在这里插入图片描述
我们点击这个线程就能进去监控页面。
在这里插入图片描述

内存选项
在这里插入图片描述

线程

在这里插入图片描述

类加载监控

在这里插入图片描述

VM虚拟机监控

在这里插入图片描述

这就是jconsole的监控使用,可以看到他其实具有很多前面命令的功能,而且他是连续采集的,我们一般主要关注的就是内存空间的使用,我们能看到关于堆内存的各个分代区域的变化,从而做到对堆空间变化的监控,具体需要结合jvm的垃圾回收机制来看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值