橘子学JVM之GUI监控02之Visual VM

本文介绍VisualVM工具的主要功能,包括生成/读取堆内存/线程快照、查看JVM参数和系统属性等。并提供了从下载安装到具体使用的详细步骤,通过实例演示如何监控程序的运行状态。

一、简述

Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具。它集成了多个JDK命令行工具,使用Visual VM可用于显示虚拟机进程及进程的配置和环境信息(jps,jinfo),监视应用程序的CPU、GC、堆、方法区及线程的信息(jstat、jstack)等,甚至代替JConsole。在JDK 6 Update 7以后,Visual VM便作为JDK的一部分发布(VisualVM 在JDK/bin目录下)即:它完全免费。
主要功能:
● 1.生成/读取堆内存/线程快照
● 2.查看JVM参数和系统属性
● 3.查看运行中的虚拟机进程
● 4.程序资源的实时监控
● 5.JMX代理连接、远程环境监控、CPU分析和内存分析

官方地址:https://visualvm.github.io/index.html

二、安装

1、JDK9起,已不再集成visualvm,需要自己去visualvm官网下载。
下载地址:https://visualvm.github.io/
2、下载完成后,在etc文件夹下找到visualvm.conf文件,打开,并设置jdk路径。
在这里插入图片描述
然后此时你就可以双击打开了。

三、使用

1、程序

我们先整两个程序,然后以这两个程序为基础一点一点来看这个工具。


import java.util.ArrayList;
import java.util.Random;

/**
* @author: levi
* @description: -Xms600m -Xmx600m -XX:SurvivorRatio=8
* @date: 2022-11-3 21:33
* @version: 1.0
*/
public class OOMTest {
  public static void main(String[] args) {
      ArrayList<Picture> list = new ArrayList<>();
      while (true){
          try {
              Thread.sleep(5);
          }catch (InterruptedException e){
              e.printStackTrace();
          }
          list.add(new Picture(new Random().nextInt(100 * 50)));
      }
  }
}
class Picture{
  private byte[] pixels;

  public Picture(int length) {
      this.pixels = new byte[length];
  }
}
import java.util.ArrayList;
import java.util.Random;

/**
 * @author: levi
 * @description: -Xms600m -Xmx600m -XX:SurvivorRatio=8
 * @date: 2022-11-3 21:39
 * @version: 1.0
 */
public class HeapInstanceTest {
    byte[] buffer = new byte[new Random().nextInt(1024 * 100)];

    public static void main(String[] args) {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        ArrayList<HeapInstanceTest> list = new ArrayList<>();
        while (true){
            list.add(new HeapInstanceTest());
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

2、插件安装

visual vm这个东西后面我就叫他vv,这玩意其实默认打开的东西不是很全,他有些功能其实没有,比如看GC图,不过还好他提供一些插件的安装,安装这些插件可以让你使用一些扩展功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
OK,此外其他的插件你也可以按照需求安装好,进行使用。

3、开始使用

我们随便起一个程序,然后使用vv连接好看一下他的监控信息。
在这里插入图片描述

3.1、overview

我们先来看面板上的overview选项。
在这里插入图片描述
在这里插入图片描述
我们看到这块主要是一些配置信息的展示监控。

3.2、monitor

在这里插入图片描述
这块就是设计一些内存和cpu的监控了,然后呢,我图里面是一个瞬时的捕捉截图,但是实际上这个图是不断变化的,需要注意这一点。

3.3、threads

在这里插入图片描述

3.4、visual gc

注意这个就是我上面安装的那个三方插件。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值