当前位置: 首页 > news >正文

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分析和内存分析
      在这里插入图片描述
      在这里插入图片描述

相关文章:

  • 如何从 Android 图库中恢复误删除的照片
  • 鸿蒙认证学什么?
  • Nagios的安装和使用
  • 【网络编程开发】8.TCP连接管理与UDP协议 9.IP协议与ethernet协议
  • CasADi库入门求解二次规划问题例子
  • 【设计模式深度剖析】【5】【行为型】【迭代器模式】
  • 用例与用例之间的三种关系:泛化、包含、扩展
  • 一些JVM面试题
  • Hive on Spark版本兼容性
  • 2024 年适用于 Mac 的 5 大免费录屏软件
  • Linux之进程信号详解【上】
  • 2024年电子工程与自动化技术国际会议(ICEEAT 2024)
  • Playwright 这个强大的自动化测试工具
  • pdf文件在线压缩网站,pdf文件在线压缩工具软件
  • 3067. 在带权树网络中统计可连接服务器对数目 Medium
  • 《深入 React 技术栈》
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • AngularJS指令开发(1)——参数详解
  • E-HPC支持多队列管理和自动伸缩
  • HomeBrew常规使用教程
  • Javascript设计模式学习之Observer(观察者)模式
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Js基础——数据类型之Null和Undefined
  • mysql innodb 索引使用指南
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 简单数学运算程序(不定期更新)
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用 Xcode 的 Target 区分开发和生产环境
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 自定义函数
  • Java数据解析之JSON
  • ​flutter 代码混淆
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #{}和${}的区别是什么 -- java面试
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1)bark-ml
  • (1)Jupyter Notebook 下载及安装
  • (145)光线追踪距离场柔和阴影
  • (2022 CVPR) Unbiased Teacher v2
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (C语言)共用体union的用法举例
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (三)模仿学习-Action数据的模仿
  • (十六)、把镜像推送到私有化 Docker 仓库
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (转)【Hibernate总结系列】使用举例
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET MVC 验证码