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

jconsole与jvisualvm监控

jconsole与jvisualvm监控

1.介绍

jconsole.exejvisualvm.exe 都是 JDK 自带的图形化监控工具,用于 实时观察和分析运行在 JVM 上的 Java 应用的性能指标。它们的主要用途如下:


1. jconsole.exe(Java Monitoring and Management Console)

📌 作用:
  • 实时监控 JVM 的运行状态
    • 堆内存、线程、类加载、CPU 使用率
    • GC 活动(次数、耗时)
    • MBean(管理 Bean)信息
  • 支持远程连接:可监控 Linux/Windows 上的远程 JVM
  • 轻量级:启动快,适合快速排查问题
📊 界面示例:
  • 概览页:堆、线程、类、CPU 四条曲线
  • 内存页:堆内存分代(Eden/Survivor/Old)使用情况;检测死锁
  • 线程页:线程总数、死锁检测
  • 类页:已加载类数量
  • MBean页:查看和操作已注册的 MBean(如 Tomcat、Spring 等暴露的指标)

2. jvisualvm.exe(Java VisualVM)

📌 作用:
  • jconsole 的“增强版”,功能更强大:
    • 支持 CPU/内存采样与剖析(Profiling)
    • 支持 堆转储(Heap Dump)线程转储(Thread Dump)
    • 支持 插件扩展(如 Visual GC、JVM 参数分析)
    • 支持 快照保存与对比
  • 支持远程/本地 JVM 监控
  • 支持离线分析:可导入 .hprof 堆转储文件
📊 界面示例:
  • Monitor 标签页:类似 jconsole 的实时监控
  • Sampler 标签页:实时 CPU/内存采样
  • Profiler 标签页:方法级性能分析(需手动启动)
  • Visual GC 插件:可视化各内存分代的实时变化

快速排查 JVM 内存/线程问题 → 用 jconsole

  • 深度分析 性能瓶颈(如方法耗时、内存泄漏) → 用 jvisualvm
  • 两个工具都在 JDK 的 bin 目录下,无需安装,随装随用。

2.配置

Windows 本地 使用 jconsole.exejvisualvm.exe 监控运行在 Linux 服务器 上的 JVM 进程,你需要配置 JMX 远程连接

完整配置步骤:


✅ 步骤一:在 Linux 上启用 JMX 远程监控

配置文件:/usr/local/tomcat/bin/catalina.sh

启动你的 Java 应用时,添加以下 JVM 参数:

JAVA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9999-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false-Djava.net.preferIPv4Stack=true-Djava.rmi.server.hostname=192.168.126.231"
# 192.168.126.231为tomcat所在的Linux服务器IP
  • jmxremote.port:JMX 连接端口。
  • rmi.port:必须与 jmxremote.port 一致,避免 RMI 通信失败。
  • hostname:必须是 Linux 服务器的 公网 IP可被本地解析的域名

重启生效


✅ 步骤二:开放 Linux 服务器端口

确保云服务器的 安全组 或本地防火墙放行端口:

虚拟机的linux直接关闭防火墙即可;

# 示例:开放 9999 端口
sudo firewall-cmd --permanent --add-port=9999/tcp
sudo firewall-cmd --reload

✅ 步骤三:本地连接(Windows)

在JDK的bin目录下

使用 jconsole.exe:
  1. 打开本地 JDK 安装目录下的 bin/jconsole.exe

  2. 选择 “远程进程”

  3. 输入:

    服务IP:9999
    
  4. 点击“连接”,选择“不安全的连接”即可进入监控界面。

使用 jvisualvm.exe:
  1. 打开 bin/jvisualvm.exe

  2. 点击菜单:文件 → 添加 JMX 连接

  3. 输入:

    服务IP:9999
    
  4. 勾选“不要求 SSL”,点击“确定”连接。

http://www.lryc.cn/news/608897.html

相关文章:

  • Python 动态属性和特性(特性全解析)
  • 前端 拼多多4399笔试题目
  • RabbitMQ面试精讲 Day 8:死信队列与延迟队列实现
  • 数据分析—numpy库
  • JS逆向 - (国外)川航 - Reese84(cookie)
  • Mongo索引
  • git相关配置问题汇总
  • Linux 文件与目录操作详解
  • 从Docker衔接到导入黑马商城以及前端登录显示用户或密码错误的相关总结(个人理解,仅供参考)
  • PyTorch生成式人工智能(24)——使用PyTorch构建Transformer模型
  • accept4系统调用及示例
  • ABP VNext + CloudEvents:事件驱动微服务互操作性
  • 数据治理:DQC(Data Quality Center,数据质量中心)概述
  • [每周一更]-(第153期):**PDF终极防护指南:命令行全栈加密+一键权限锁死实战(附脚本模板)**
  • Docker--解决x509: certificate signed by unknown authority
  • 医院课题管理全动态流程 (AI-Enhanced, Data-Driven Research Lifecycle)
  • JAVA中的String类方法介绍
  • 基于transformer的目标检测——匈牙利匹配算法
  • 【Excel】利用函数和Power Query进行数据分析
  • 基于Matlab的深度学习智能行人检测与统计系统
  • Java企业级应用性能优化实战
  • 2025年人工智能十大趋势 - 基础模型的跃迁
  • 达梦数据库联机备份和脱机备份的区别
  • C++ 入门基础(3)
  • 自私挖矿攻击
  • C++引用:高效安全的别名机制详解
  • RPG增容3:尝试使用MVC结构搭建玩家升级UI(一)
  • Claude Code入门学习笔记(四)--Claude Code的使用
  • [硬件电路-150]:数字电路 - 数字电路与模拟电路的异同
  • 志邦家居PMO负责人李蓉蓉受邀为PMO大会主持人