JVM学习-监控工具(三)

jconsole
  • 从Java5开始,在JDK中自带的java监控和管理控制台
  • 用于对JVM中内存、线程、和类等的监控,是一个基本JMX(java management extendsions)的GUI性能监控工具
三种连接方式
  • Local:使用JConsole连接是一个正在本地系统运行的JVM,并且执行程序和运行JConsole的需要是同一个用户,JConsole使用文件系统的授权通过RMI连接器连接到平台的Mbean服务器上,这种本地连接监控能力只有Sun的JDK具有
  • Remote:使用下面的URL通过RMI连接器连接到一个JMX代理,service:jmx:rmi:///jndi/rmi://hostName:portNum/jmxrmi,JConsole为建立连接,需要在环境变量中设置mx.remote.credentials来指定用户名和密码,从而进行授权
  • Advanced:使用一个特殊的URL连接JMX代理,一般情况使用自己定制的连接器而不是RMI提供的连接器来连接JMX代理,或者使用JDK1.4实现JMX和JMX Remote应用
    在这里插入图片描述
Visual VM
  • Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具
  • 集成了多个JDK命令行工具,使用Visual VM可以显示虚拟机进程及进程的配置和环境信息(jps,jinfo),监视应用程序的CPU、GC、堆、方法区、及线程信息(jstat,jstack)等,甚至代替JConsole
  • 在JDK6 update 7以后,Visual VM便作为JDK的一部分发布(在JDK/bin目录下),完全免费
  • Visual VM也可以做为独立的软件安装
插件安装
  • IDEA安装
    在这里插入图片描述
  • jvisualvm安装
    在这里插入图片描述
    在这里插入图片描述
连接方式
  • 本地连接
  • 监控本地Java进程的CPU、类、线程等
  • 远程连接
  • ①确定远程服务器的IP地址
  • ②添加JMX
  • ③修改bin/catalina.sh,连接远程的tomcat
  • ④在…/conf中添加jmxremote.access和jmxremote.password文件
  • ⑤将服务器地址改为公网IP地址
  • ⑥设置阿里云安全策略和防火墙策略
  • ⑦启动tomcat,查看tomcat启动日志和端口监听
  • ⑧JMX中输入端口号、用户名、密码
主要功能
  • 生成/读取堆内存快照
    在这里插入图片描述
    在这里插入图片描述

  • 查看JVM参数和系统属性

  • 查看运行中的虚拟机进程

  • 生成/读取线程快照
    在这里插入图片描述
    在这里插入图片描述

  • 程序资源的实时监控

  • 其他功能

  • JMX代理连接
  • 远程环境监控
  • CPU分析和内存分析
    在这里插入图片描述
    在这里插入图片描述
MAT(Memory Analyzer Tool)
基本概述
  • Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况
  • MAT是基于Eclipse开发的,不仅可以单独使用,还能以插件方式嵌入Eclipse中使用,是一款免费的性能分析工具
获取堆dump文件
  • dump文件内容
  • MAT可以分析heap dump文件,在进行内存分析时,只要获得了反映当前设备内存映像的hprof文件,通过MAT打开就能直观地看到当前的内存信息
  • 这些内存信息包含
  • 所有的对象信息,包括对象实例,成员变量,存储于栈中的基本数据类型值和存储于堆中的其他对象的引用值
  • 所有的类信息,包括classloader、类名称、父类、静态变量等
  • GCRoot到所有的这些对象的引用路径
  • 线程信息,包括线程的调用栈及此线程的线程局部变量(TLS)
  • 获取dump文件
  • 通过jmap工具生成,可以生成任意一个java进程的dump文件
  • 通过配置JVM参数生成
  • 选项-XX:+HeapDumpOnOutOfMemoryError 或 -XX:+HeapDumpBeforeFullGC
  • 选项 -XX:HeapDumpPath所代表的含义就是当程序出现OOM时,将会在相应目录下生成一份dump文件,如果不指定,则在当前目录生成dump文件
  • 生产环境中几乎不可能在线对其进行分析,都采用离线分析,因此使用jmap+MAT工具分析dump文件
  • 使用VisualVM可以导出堆dump文件
  • 使用MAT直接从活动Java程序中导出堆快照
分析堆dump文件
  • histogram(直方图):展示了各个类的实例数目以及这些实例的shallow heap或retainedheap的总和
  • thread overview
  • 查看系统中的Java线程
  • 查看局部变量的信息
  • 获取对象相互引用的关系
  • with outgoing references
  • with incoming references
  • 浅堆与深堆
  • shallow heap
  • retained heap
  • 对象实际大小
  • 案例分析StudentTrace
  • 支配树
支持使用OQL语言查询对象信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mfc110u.dll丢失的解决方法,分享七个有效方法

mfc110u.dll是一个动态链接库文件,属于Microsoft Foundation Classes (MFC) 的一部分。它是Microsoft Visual Studio 2012编程环境中用于C应用程序开发的一个组件。 1.2 功能与作用 mfc110u.dll文件提供了一系列的预构建类和函数,这些类和函数使得开发…

一键式AI智能知识库-谈如何打造人性化的LLM RAG知识库的重要性

RAG系统简介 在现代的LLM RAG(Retrieval-Augmented Generation)系统中,数据流的设计至关重要。让我们通过一个具体的例子来详细描述一个标准RAG系统的数据流。 首先,用户可以通过多种应用入口访问系统,包括PC应用、微…

无人机、机器人10公里WiFi远距离图传模块,实时高清视频传输,飞睿CV5200模组方案,支持mesh自组网模块

在快速发展的物联网时代,远距离无线通信技术已成为连接各种智能设备的关键。无人机、安防监控、机器人等领域对数据传输的距离和速度要求越来越高。 公里级远距离WiFi模组方案可以通过多种技术和策略的结合来实现无人机和机器人之间的高效通信传输。 飞睿智能CV52…

如何看待时间序列与机器学习?

GPT-4o 时间序列与机器学习的关联在于,时间序列数据是一种重要的结构化数据形式,而机器学习则是一种强大的工具,用于从数据中提取有用的模式和信息。在很多实际应用中,时间序列与机器学习可以结合起来,发挥重要作用。…

npm install报ENOENT: no such file or directory, open问题

没有进行npm的初始化操作导致的 npm init -y 再 npm install npm install

Linux编程--网络层和

1.IP协议 1.1 协议头的格式 4位版本:指定IP协议的版本,IPV4就是4。 4位首部长度:*4 报头的长度 [0-60] 8位服务类型:3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0). 4位TOS分别表示: 最小延时, 最大吞吐量…

中电金信:从规划到落地,中电金信全程陪伴式服务助力泛金融数字化转型

在当前的全球经济和金融发展格局中,金融行业正经历着一场以数字化为核心的快速转型。中国银行业和保险业已经成功探索出一条数字化转型的路径,并积累了丰富的实践经验。然而,泛金融领域则仍处于数字化转型的初期阶段,其转型能力因…

GitHub狂揽6700 Star,Python进阶必备的案例、技巧与工程实践

当下是 Python 急剧发展的时代,越来越多的人开始学习和使用Pyhon,而大家也遇到了各种问题。这份手册清晰、细致地介绍了 Python 代码应该遵循的编程风格,并解释了背后的原理和机制。 入门 Python 语言相对简单,但写出优雅的代码并…

开源数据库同步工具DBSyncer-数据库的连接

开源数据库同步工具DBSyncer使用的是什么数据库呢? 查看连接信息,如下: 如上图可知,DBSyncer支持两种方式的数据库连接方式, #storage #数据存储类型:disk(默认)/mysql(推荐生产环境使用) #disk-磁盘:/data/config(驱…

『 Linux 』目录与软硬链接 (万字详解)

文章目录 如何理解目录目录项 目录中的权限问题根目录Dentry缓存文件的增删改查与文件系统关系软硬链接软链接硬链接 如何理解目录 目录是一个文件存在其对应独立的Inode; $ stat dirFile: ‘dir’Size: 4096 Blocks: 8 IO Block: 4096 directory Device: f…

杂谈k8s

其实看我之前的博客,k8s刚有点苗头的时候我就研究过,然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了,正苦于不知道写什么,水一篇 简化容器应用程序的部署和管理 自动化部署、自动伸缩、负载均衡、存储管理、自我修复 支…

springboot日志文件不生产问题

当指定了日志文件logback-spring.xml,发现项目启动的时候,不生产日志 解决方案:在yml中指定本工程具体的日志文件 logging:config: classpath:logback-spring.xml如果还是不产生日志文件的话:指定磁盘上具体的目录即可&#xff…

STM32 HAL库开发——入门篇(3):OLED、LCD

源自正点原子视频教程: 【正点原子】手把手教你学STM32 HAL库开发全集【真人出镜】STM32入门教学视频教程 单片机 嵌入式_哔哩哔哩_bilibili 一、OLED 二、内存保护(MPU)实验 2.1 内存保护单元 三、LCD 3.1 显示屏分类 3.2 LCD简介 3.3 LCD…

回归现实:无需复杂假设即可轻松评估过程能力的简单方法

Cpk 和 Ppk 等过程能力指标能够测量您的过程相对于客户规格要求的执行情况。我们先回顾一些能力分析基础知识,再深入了解另一个能力估计值 Cnpk,该估计值很可能在您的能力分析库中非常有用。 能力统计指标分析 能力统计指标使用单个数字,是一…

什么是最好的手机数据恢复软件?6 款手机数据恢复软件 [2024 年更新]

什么是最好的手机数据恢复软件?在这篇文章中,您将了解 6 款最好的免费手机数据恢复软件,并学习如何恢复数据的完整指南。 最好的手机数据恢复软件是什么? 手机数据恢复软件是恢复智能手机中丢失或删除的文件、消息、照片和其他宝…

运筹学_8.决策论

引言 决策论是根据信息和评价准则,用数量方法寻找或选取最优决策方案的科学,是运筹学的一个分支和决策分析的理论基础。在实际生活与生产中对同一个问题所面临的几种自然情况或状态,又有几种可选方案,就构成一个决策,…

GaN功率电子器件中体缺陷相关机制的建模仿真研究

在电力电子器件的外延生长和器件制备过程中,缺陷是不可避免的,大量的缺陷在一定程度上会牺牲器件的击穿电压、导通电阻等性能,同时影响器件的可靠性。近期,河北工业大学和广东工业大学联合开发了缺陷相关的仿真模型,深…

VMware虚拟机关机报错处理办法

VMware虚拟机关机报错处理办法 ​ 在 VMware ESXi 下面强制关闭一个沒有反应的 VM 虚拟机的方法, 一般正常都是使用 vSphere Client 去控制 VM 虚拟机的电源开关, 但是有时会发生即使用里面的 Power Off 按钮但是还是无法关闭我的 VM 虚拟机, 而且最终会出现一串 错误信息「An…

github将默认分支main改为master

github将默认分支main改为master 1.进入github,点击setting 2.在setting中,选择Respositories,更新默认分支为master 3.选择要更新的项目,在项目中选择setting->general->切换默认分支

【三勾商城】新增添加自定义表单

三勾商城是开发友好的微信小程序商城,框架支持SAAS,支持发布 iOSAndroid公众号H5各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)等多个平台,不可多得的二开神器, 为大中小企业提供极致的移动电子商务解决…