JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】

简介: JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】

思维导图


20180807192539271.png

概述


Visual VM (All-in-One Java Troubleshooting Tool)是目前为止随JDK发布的功能最强大的运行监视和故障处理程序。 Visual VM除了提供运行监视、故障处理外,还提供了比如性能分析(Profiling),对应用程序的实际性能影响很小,使得它可以直接应用在生产环境,这个优点是JProfiler、YourKit等第三方的性能分析工具无法比拟的.


VisualVM可以做到


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

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

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

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

离线程序快照:收集程序的运行配置、线程dump、内存dump等信息建立一个快照,方便分析

基于NetBeans平台开发,可安装各种各样的插件,功能强大,精华所在。

#插件安装


20180807201146245.png


打开 VisualVM图形化界面工具, 工具 --插件



20180807201240955.png

安装完插件后,选择一个需要监视的程序就进入程序的主页面了


2018080720153951.png


生成、浏览堆转储快照

两种方式生成dump

  • 在“应用程序”窗口中右键单击应用程序节点,然后选择“堆Dump”



20180807201805975.png


  • 在“应用程序”窗口中双机应用程序节点以打开应用程序内标签,然后在“监视”标签中单击“堆Dump”


20180807201933386.png


生成dump文件之后,应用程序页签将在该堆的应用程序下增加一个以【heapdump】开头的子节点,并且在主页签中打开了该转储快照。


20180807202230516.png

从堆页签中的“摘要”面案可以看到应用程序dump时运行的参数、System.getProperties()的内容、线程堆栈等信息。


“类”:类面板是以类为统计口径统计类的实例数量、容量信息等


“实例”:实例面板不能直接使用,因为不能确定用户想查哪个类的实例,需要通过类面板进入,在类中选择一个关心的类后双击,即可在实例中看到此类中500个实例的具体属性信息


“OQL控制台”:运行OQL查询语句的


如果想保存该dump, 右键另存为即可。 要打开一个已经存在的dump“文件–装入”即可


分析程序性能


在Profiler页签中,VisaualVM提供了程序运行期间方法级的CPU执行时间分析以及内存分析。 做Profiling分析肯定会对程序性能有比较大的影响,一般不再生产环境使用。


20180807203700806.png


CPU分析会统计每个方法的执行次数、执行耗时

内存分析会统计每个方法关联的对象数以及这些对象占用的空间。


BTrace


BTrace是sun公司推出的一款Java 动态、安全追踪(监控)工具,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。


这项功能对实际生产中的程序很有意义,比如程序出现问题,但排查错误的一些必要信息,比如方法参数、返回值等,但是开发的时候没有输出到日志中,以至于不能不加上日志后重新启动服务。 这时候BTrace插件就很方便了。


限制比较多,并且一定要确保脚本的正确性。


在Visual VM“应用程序”中选择对应的进程,右键会看到“Trace Application”

20180807214120144.png

先了解下,后续再补充。

相关文章
|
5月前
|
监控 Java Unix
6个Java 工具,轻松分析定位 JVM 问题 !
本文介绍了如何使用 JDK 自带工具查看和分析 JVM 的运行情况。通过编写一段测试代码(启动 10 个死循环线程,分配大量内存),结合常用工具如 `jps`、`jinfo`、`jstat`、`jstack`、`jvisualvm` 和 `jcmd` 等,详细展示了 JVM 参数配置、内存使用、线程状态及 GC 情况的监控方法。同时指出了一些常见问题,例如参数设置错误导致的内存异常,并通过实例说明了如何排查和解决。最后附上了官方文档链接,方便进一步学习。
541 4
|
1月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
145 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
3月前
|
存储 算法 Java
JvM JDK JRE 三者区别与联系详解
本文深入解析了Java编程中的三个核心概念:JVM(Java虚拟机)、JDK(Java开发工具包)和JRE(Java运行环境)。JVM是执行Java字节码的虚拟计算机,实现“一次编译,到处运行”;JDK包含JRE及开发工具,用于编写和调试Java程序;JRE负责运行已编译的Java程序。文章详细阐述了它们的功能、组成及应用场景,并通过实例说明其在实际开发中的作用,帮助开发者理解三者联系与区别,提升开发效率与问题解决能力。适合Java初学者及进阶开发者学习参考。
429 3
|
3月前
|
监控 Oracle Java
JVM JDK JRE 使用指南及组件封装方法详解
本指南全面介绍了JVM、JDK、JRE的使用方法与Java组件封装技巧。内容涵盖JDK安装配置、JRE使用、JVM参数调优(如堆内存设置和垃圾回收器选择),以及类、包的封装实践。通过示例展示工具类与数据访问组件的封装方法,并讲解JAR包创建与发布流程。此外,还提供了常见问题解决方案,如内存溢出处理和依赖冲突管理。帮助开发者掌握高效、规范的Java开发技能,提升代码复用性和可维护性。附带面试资料供进一步学习。
145 0
|
12月前
|
存储 算法 Java
jvm性能优化(一)-基于JDK1.8
jvm性能优化(一)-基于JDK1.8
|
10月前
|
Arthas Prometheus 监控
监控堆外使用JVM工具
监控堆外使用JVM工具
260 7
|
11月前
|
JavaScript 前端开发 Java
jvm的jshell,学生的工具
本文介绍了JVM的jshell工具,它为Java平台添加了REPL(读取-评估-打印循环)功能,使得学习、探索编码和原型代码变得更加便捷,但作者认为其在实际开发中较为鸡肋。
105 1
jvm的jshell,学生的工具
|
11月前
|
Arthas 监控 数据可视化
JVM进阶调优系列(7)JVM调优监控必备命令、工具集合|实用干货
本文介绍了JVM调优监控命令及其应用,包括JDK自带工具如jps、jinfo、jstat、jstack、jmap、jhat等,以及第三方工具如Arthas、GCeasy、MAT、GCViewer等。通过这些工具,可以有效监控和优化JVM性能,解决内存泄漏、线程死锁等问题,提高系统稳定性。文章还提供了详细的命令示例和应用场景,帮助读者更好地理解和使用这些工具。
|
11月前
|
存储 监控 算法
JVM调优深度剖析:内存模型、垃圾收集、工具与实战
【10月更文挑战第9天】在Java开发领域,Java虚拟机(JVM)的性能调优是构建高性能、高并发系统不可或缺的一部分。作为一名资深架构师,深入理解JVM的内存模型、垃圾收集机制、调优工具及其实现原理,对于提升系统的整体性能和稳定性至关重要。本文将深入探讨这些内容,并提供针对单机几十万并发系统的JVM调优策略和Java代码示例。
170 2
|
11月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
208 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用