性能测试之JVM的故障分析工具VisualVM
VisualVM 是随JDK一同发布的jvm诊断工具,通过插件可以扩展很多功能,插件扩展也是其精华所在。
提供了一个可视界面,用于在Java应用程序在Java虚拟机上运行时查看有关Java应用程序的详细信息。此信息可用于对本地和远程应用程序进行故障排除以及对本地应用程序进行性能分析。
使用Java VisualVM,可以生成和分析堆转储,跟踪内存泄漏,执行和监视垃圾回收以及执行轻量级内存和CPU性能分析。该工具对于调整,堆大小,脱机分析和事后诊断也很有用。
使用方法
- 启动
cd <JDK_HOME>/bin
jvisualvm
- 选择监控进程

当然监控支持远程JMX监控和远程主机监控
监控视图:监控cpu、堆、类加载、线程数

线程监控:死锁诊断等

cpu和内存取样分析:cpu线程占用分析、内存占用分析等


GC监控插件

插件推荐
Visual GC
将可视垃圾收集监视工具集成到VisualVM中。Visual GC附加到应用程序,并收集并以图形方式显示垃圾收集,类加载器和HotSpot编译器性能数VisualVM MBeans
MBeans浏览器插件提供的功能类似于JConsole中的MBeans浏览器:显示应用程序的MBean,显示值,操作和通知。在VisualVM中,浏览器得到了进一步的改进,以提供更好的可用性并支持最新的JMX功能VisualVM Extensions
该模块的目的是添加对在发布VisualVM时VisualVM核心模块不支持的其他功能(例如新的JDK,JVM,HotSpot版本...)的支持Tracer
用于详细监视和分析Java应用程序的框架和GUI。跟踪器使用各种探针,从应用程序收集指标并在时间轴中显示数据。数据以图形方式和表格形式显示,并可以导出为通用格式,以供外部工具进行进一步处理JConsole
支持在VisualVM中使用现有的JConsole插件(如JTop)Threads Inspector
线程检查器在“线程”选项卡上添加了一个新部分,其中显示了选定活动线程的堆栈跟踪。
扫一扫,关注我

性能测试之JVM的故障分析工具VisualVM的更多相关文章
- 性能测试之JVM的故障排查-堆内存泄漏
JVM异常说明(超链接) 一文中已介绍了,JVM每个运行时区域--程序计数器 .Java虚拟机栈.本地方法栈.Java堆.方法区.直接内存发生OutOfMemoryError的不同原因和不同错误信息. ...
- 性能测试之 JVM 概念认识
无论什么语言,在程序运行过程中,都需要对内存进行管理,要知道计算机/服务器的内存不是无限的.例如:C语言中需要对对象的内存负责,需要用delete/free来释放对象:那JAVA中,对象的内存管理是由 ...
- 性能测试之数据库监控分析工具PMM
PMM(Percona Monitoring and Management) 是一个用于管理和监控数据库性能的开源平台. . 它能提供全面的基于时间和各类监控指标.计数器的分析. 性能测试中,是做数据 ...
- 性能测试之数据库监控分析工具Grafana+Prometheus
使用到 Grafana+Prometheus+Mysql_exportor 使用Prometheus和Grafana,可以快速的构建我们性能测试的绝大多数的监控模型:数据库监控.服务器监控.Jvm监控 ...
- 性能测试之JVM的故障排查-死锁
死锁原因 Java发生死锁的根本原因是:在申请锁时发生了交叉闭环申请.即线程在获得了锁A并且没有释放的情况下去申请锁B,这时,另一个线程已经获得了锁B,在释放锁B之前又要先获得锁A,因此闭环发生,陷入 ...
- 性能测试之JVM的监控Grafana
安装配置Grafana参考 https://testerhome.com/articles/23629 使用配置 下载jmx_exporter https://github.com/prometheu ...
- 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)
技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...
- jvm系列(七):jvm调优-工具篇
16年的时候花了一些时间整理了一些关于jvm的介绍文章,到现在回顾起来还是一些还没有补充全面,其中就包括如何利用工具来监控调优前后的性能变化.工具做为图形化界面来展示更能直观的发现问题,另一方面一些耗 ...
- 深入理解java虚拟机---虚拟机工具VisualVM(十九)
性能分析神器VisualVM 9602 VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成 ...
随机推荐
- 【QT】利用pyqt5实现简单界面
Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018 ...
- [工具-003]如何从ipa中提取info.plist并提取相应信息
最近公司的产品要进行一次批量的升级,产品中的一些配置存放在info.plist,为了保证产品的信息无误,我们必须要对产品的发布信息进行验证.例如:广告ID,umeng,talkingdata等等.那么 ...
- 非静态代码块(非static初始化块)&静态代码块(static初始化块)
非静态代码块: TestOrder: package com.aff.singleton; /* 类的第四个成员:初始化块(代码块) 代码块: 如果有修饰的话只能使用static 分类:非静态代码块: ...
- 从Point类继承的Circle类 代码参考
#include <iostream> #include <cstring> using namespace std; class Point { private: int x ...
- Java实现蓝桥杯VIP算法训练 石子游戏
试题 算法训练 石子游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 石子游戏的规则如下: 地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分 ...
- Java实现 LeetCode 238 除自身以外数组的乘积
238. 除自身以外数组的乘积 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元 ...
- Java实现 LeetCode 18 四数之和
18. 四数之和 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target ...
- Android如何使用SQLlite数据库
先写一个类,继承自SQLiteOpenHelper public class MyDatabaseHelper extends SQLiteOpenHelper { //声明一个Context pri ...
- 第七届蓝桥杯JavaB组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.煤球数量 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第 ...
- java实现连续数的公倍数
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致. 但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多. 事实上,它是1至6的每个数字的倍数.即1,2,3,4,5,6都是可以除尽6 ...