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语言查询对象信息

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

你真的会做抖音小店吗?这三个“流量密码”还有谁不知道!

哈喽~我是电商月月 互联网时代,电商无疑是当前阶段最赚钱的项目了 而互联网变现的关键因素就是:流量, 选择在抖音做店的原因之一,不外乎就是商家,看中了抖音内部的流量 但现实就是,有好多伙伴做店根本拿…

vscode 运行和调试

vscode使用断点 1.安装并激活扩展 Debugger for Chrome (弃用 --> JavaScript Debugger)Debugger for Firefox 2. 配置config文件 打开 config/index.js 并找到 devtool property。将其更新为: 如果你使用的是 Vue CLI 2,请设置并更新 config/in…

Linux环境下安装MySQL详细教程(手把手附图安装!!!)

目录 一、前言 二、安装前的环境检查 三、下载官方的 MySQL 安装包 四、开始安装 MySQL 五、尝试初次启动 MySQL 六、给MySQL 做一些简单的小配置 七、共勉 一、前言 本次专题将带大家进入一个新的专题 ---- MySQL。作为本次专题的第一篇博客,肯定是带大家一起…

Python魔法之旅-魔法方法(14)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

[数据集][目标检测]红外兔子检测数据集VOC+YOLO格式96张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):96 标注数量(xml文件个数):96 标注数量(txt文件个数):96 标注类别数…

mysql的binlog占用大量磁盘空间的解决方法

查看当前日志保存天数: mysql> show variables like %expire_logs_days%; ------------------------- | Variable_name | Value | ------------------------- | expire_logs_days | 0 | ------------------------- 1 row in set (0.08 sec) 默认是0&…

调用万维易源API生成AI艺术二维码

目录 1. 作者介绍2. 艺术二维码2.1 艺术二维码的作用2.2 艺术二维码的应用场景2.3调用万维易源API生成AI艺术二维码 3. 实验过程3.1算法流程3.2完整代码3.3测试结果 1. 作者介绍 韩阳,男,西安工程大学电子信息学院,2023级研究生 研究方向&am…

165.二叉树:对称二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

精酿啤酒:品质与口感在啤酒创新与研发中的重要性

在啤酒行业中,创新与研发是推动品牌持续发展的重要动力。而品质与口感作为啤酒的核心要素,在啤酒创新与研发中具有不可忽视的重要性。对于Fendi club啤酒而言,其卓着的品质和与众不同的口感在创新与研发中发挥了关键作用。 品质是啤酒创新与研…

【mysql】ssl_choose_client_version:unsupported protocol

起因:项目上的DolphinScheduler连接不上数据库,查看worker日志提到SSL协议问题: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureCaused by: java.io.EOFException: SSL peer shut down incorrectly 我…

4. MySQL 约束

文章目录 【 1. 主键约束 PRIMARY KEY 】1.1 在创建表时设置主键约束设置单字段主键在创建表时设置联合主键 1.2 在修改表时添加主键约束1.3 删除主键约束1.4 主键自增长 AUTO_INCREMENT指定自增字段初始值自增字段不连续 【 2. 外键约束 FOREIGN KEY 】2.1 在创建表时设置外键…

使用大模型解析用户问题

前文 我在问答业务中遇到了这样的问题,用户的提问方式是千变万化的,有一种可能就是用户会为了节省时间,同时在一句话里面包含了多个问题,如用户输入“查询上城区管龄大于10年,管材是PE管的管线信息,再帮我…

kafka-集群-生产消费测试

文章目录 1、集群生产消费测试1.1、消费者消费消息1.2、生产者生产消息 1、集群生产消费测试 1.1、消费者消费消息 [rootlocalhost ~]# kafka-console-consumer.sh --bootstrap-server 192.168.74.148:9095,192.168.74.148:9096,192.168.74.148:9097 --topic my_topic11.2、生…

windows开机进入grub引导

电脑上只装了一个windows7,突然有一天有人为了排查一个问题,激活了windows,关机重启以后就进入grub的引导启动了 用启动盘尝试过修复引导,使用启动盘里的分区工具重置启动引导,easyBCD都试过了,都只生效一次…

Java项目:98 springboot在线教育系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统共有管理员、用户等角色 本在线教育系统管理员功能有个人中心,用户管理,讲师管理,普通管理员管理&#xff…

HR招聘面试人才测评,如何做行政服务类岗位测评?

行政服务类岗位是企业中非常重要的一类职位,主要职责是协助企业领导完成行政管理工作,如会议组织、文件归档、人员档案管理等。为了确保企业行政管理工作的高效运行,需要对行政服务类岗位的综合素质进行测评。具体方法如下: 1. …

Python:b站多个视频爬取下载

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️如遇文章付费,可先看…

邀请新人有奖励的APP推荐:三款新用户注册有奖励的软件

邀请新人有奖励的APP推荐:三款新用户注册有奖励的软件 在这个数字化时代,许多应用程序为了扩大用户基础和增加活跃度,推出了邀请新人有奖励的机制。对于喜欢尝试新应用的用户来说,这不仅是一个获得额外奖励的好机会,也…

飞利浦桌面隐藏文件夹怎么恢复?一文教你搞定

在日常使用飞利浦电脑时,我们有时可能会因为误操作或其他原因而将某些文件夹隐藏起来。这些隐藏文件夹可能包含重要的文件,一旦无法找到,会给我们的工作和生活带来不便。因此,了解如何恢复飞利浦桌面上的隐藏文件夹显得尤为重要。…

【UML用户指南】-02-UML基本元素的介绍(二)

目录 1、语法和语义规则 2、UML中的公共机制 (1)规约 (2)修饰 (3)通用划分 (4)扩展机制 衍型/版型/类型(stereotype) 标记值 (tagged val…