java基础教程虚拟机性能分析和故障解决工具【可视化】

简介: java基础教程虚拟机性能分析和故障解决工具【可视化】

java基础教程虚拟机性能分析和故障解决工具【图形化界面】

--------------作用:帮助判断cpu占用率过高、死循环、死锁、内存泄露、内存溢出等等问题。

 

JConsole:重点学查看线程、内存

VisualVM (推荐):跟JConsole 功能一样,但是功能比JConsole强大。【详细介绍】

 

 

1、jconsole------重点学查看线程、内存


image.png


2、VisualVM-----运行监视、故障处理、性能分析

■ VisualVM基于NetBeans平台开发,因此他一开始就具备了插件扩展功能的特性,通过插件扩展支持,VisualVM可以做到:

    - 显示虚拟机进程以及进程的配置、环境信息(jps、jinfo)。

    - 监视应用程序的CPU、GC、堆、方法区以及线程的信息(jstat、jstack)。

    - dump以及分析堆转储快照(jmap、jhat)。

    - 方法级的程序运行性能分析,找到被调用最多、运行时间最长的方法。

    - 离线程序快照:收集程序的运行时配置、线程dump、内存dump等信息建立一个快照,可以将快照发送开发者处进行Bug反馈。

    - 其他plugins的无限的可能性…


■ 使用与安装插件

    1.在终端输入:jvisualvm执行即可;

    2.安装插件:

       2.1 从主菜单中选择“工具”>“插件” ;

       2.2 在“可用插件”标签中,选中该插件的“安装”复选框。单击“安装” ;

       2.3 逐步完成插件安装程序。


✿ 测试类的代码:


package jvisualvm;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * JVisualVM 内存分析
 * @author Huangyujun
 *
 */
public class jvisualvmDemo1 {
    public static void main(String[] args) throws IOException, InterruptedException {
        test1();
        System.in.read();
    }
    private static void test1() throws InterruptedException {
        List<Student> list = new ArrayList<>();
        for(int i = 0; i < 100; i++) {
            Thread.sleep(1000);
            list.add(new Student());
        }
    }
}
class Student {
    private byte[] big = new byte[5 * 1024 * 1024];    //5M
}


■ 使用jvisualvm 具体步骤:

1):先在eclipse终端上输入:jvisualvm

2):选中咱的测试类双击:


57.png


■ 看到的工具栏这些选项,其实就对应的是jvisualvm中安装的插件,需要更多功能,就安装一下啦


57.png


■  堆Dump 和 线程Dump重点

1): 堆Dump:在监视中有堆Dump 【点完观察最左边应用程序生成了一个堆Dump 文件; 当然这时候点概述也可以看到堆Dump 数量,点击它也可以查看堆Dump文件信息】

58.png


59.png60.png


2): 线程Dump:在线程选项里有线程Dump


61.png


 还有抽样器对CPU和内存进行一段时长的取样,从而对应用程序进行分析 【通过 快照或者暂停,获取到某个时刻的内存或cpu状态】


62.png


3,补充jvisualvm的使用---检查死锁:

1):代码案例:


private static void dealLock() {
        Lock lock1 = new ReentrantLock();
        Lock lock2 = new ReentrantLock();
        new Thread(() -> {            
            try {
                lock1.lock();//在线程myThread1中:lock1锁完不释放去睡觉了,在线程myThread2中:lock1 想再锁没机会呀
                Thread.sleep(100);
                lock2.lock();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "myThread1").start(); 
        new Thread(() -> {            
            try {
                lock2.lock();
                Thread.sleep(100);
                lock1.lock();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, "myThread2").start(); 
    }


2):jvisualvm工具中的情况:


63.png


目录
相关文章
|
10天前
|
存储 数据挖掘 虚拟化
vsan数据恢复—vsan缓存盘故障导致虚拟机磁盘文件丢失的数据恢复案例
VMware vsan架构采用2+1模式。每台设备只有一个磁盘组(7+1),缓存盘的大小为240GB,容量盘的大小为1.2TB。 由于其中一台主机(0号组设备)的缓存盘出现故障,导致VMware虚拟化环境中搭建的2台虚拟机的磁盘文件(vmdk)丢失。
|
7月前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
106 0
|
3月前
|
监控 前端开发 Java
Java SpringBoot –性能分析与调优
Java SpringBoot –性能分析与调优
|
4月前
|
存储 运维 虚拟化
虚拟化数据恢复——Hyper-V虚拟化故障导致虚拟机文件丢失的数据恢复案例
在Windows Server上部署的Hyper-V虚拟化环境中,因存储中虚拟机数据文件丢失导致服务瘫痪。北亚企安数据恢复工程师通过物理检测、操作系统及文件系统检测,确定为人为格式化造成,并通过镜像硬盘、重组RAID、分析并恢复文件索引项等步骤,成功恢复数据,最终在新Hyper-V环境中验证并迁移所有虚拟机,确保用户业务恢复正常运行。
|
5月前
|
监控 IDE Java
【Java性能调优新工具】JDK 22性能分析器:深度剖析,优化无死角!
【9月更文挑战第9天】JDK 22中的性能分析器为Java应用的性能调优提供了强大的支持。通过深度集成、全面监控、精细化分析和灵活报告生成等核心优势,性能分析器帮助开发者实现了对应用性能的全面掌控和深度优化。在未来的Java开发过程中,我们期待性能分析器能够继续发挥重要作用,为Java应用的性能提升贡献更多力量。
|
6月前
|
Java
Java常见JVM虚拟机指令(47个)
Java常见JVM虚拟机指令(47个)
95 3
Java常见JVM虚拟机指令(47个)
|
7月前
|
监控 Oracle Java
(一)JVM成神路之初识虚拟机 - 探寻Java虚拟机的前世今生之秘
JVM(Java Virtual Machine)Java虚拟机的概念大家都不陌生,Java之所以可以做到“一次编译,到处运行”的跨平台性,其根本原因就在于JVM。JVM是建立在操作系统(OS)之上的,Java虚拟机屏蔽了开发人员与操作系统的直接接触,我们在通过Java编写程序时,只需要负责编写Java代码即可,关于具体的执行则会由JVM加载字节码后翻译成机械指令交给OS执行。
137 1
|
6月前
|
Java 数据安全/隐私保护 Windows
【Azure Developer】使用Java代码启动Azure VM(虚拟机)
【Azure Developer】使用Java代码启动Azure VM(虚拟机)
|
6月前
|
存储 Java API
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率
|
7月前
|
Java 数据安全/隐私保护
Java无模版导出Excel 0基础教程
经常写数据导出到EXCEL,没有模板的情况下使用POI技术。以此作为记录,以后方便使用。 2 工具类 样式工具: 处理工具Java接口 水印工具 导出Excel工具类 3 测试代码 与实际复杂业务不同 在此我们只做模拟 Controller Service 4 导出测试 使用Postman进行接口测试,没接触过Postman的小伙伴可以看我这篇博客Postman导出excel文件保存为文件可以看到导出很成功,包括水印 sheet页名称自适应宽度。还有一些高亮……等功能可以直接搜索使用
154 0
Java无模版导出Excel 0基础教程

热门文章

最新文章