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 参数:

bash 复制代码
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直接关闭防火墙即可;

bash 复制代码
# 示例:开放 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",点击"确定"连接。

相关推荐
张永清18 天前
每周读书与学习->JMeter性能测试脚本编写实战(二)- 前一个请求返回的结果作为后一个请求的入参
性能调优·jmeter性能测试·性能分析·性能监控·每周读书与学习
张永清1 个月前
每周读书与学习->JMeter性能测试脚本编写实战(一)-如何实现用户需先登录,然后再请求别的接口
性能调优·jmeter性能测试·性能分析·每周读书与学习
白鹿第一帅1 个月前
【仓颉纪元】仓颉性能优化深度实战:5 天让应用提速 300%
性能优化·内存管理·性能分析·编译优化·仓颉语言·并发优化·ui渲染优化
张永清-老清1 个月前
图书出版的幕后故事-《JMeter核心技术、性能测试与性能分析》背后不为人知的事
jmeter·性能优化·性能调优·jmeter性能测试·性能分析·每周读书与学习
张永清-老清1 个月前
每周读书与学习->JMeter主要元件详细介绍(四)再谈取样器
学习·jmeter·性能优化·性能调优·jmeter性能测试·性能分析·每周读书与学习
IT小哥哥呀1 个月前
MySQL慢查询优化实战:从日志分析到SQL重构全流程
mysql·性能分析·实战项目·数据库调优·sql性能·索引设计·慢查询优化
张永清-老清2 个月前
每周读书与学习->JMeter主要元件详细介绍(三)逻辑控制器
测试工具·jmeter·压力测试·性能调优·jmeter性能测试·性能分析·每周读书与学习
张永清2 个月前
每周读书与学习->JMeter主要元件详细介绍(三)逻辑控制器
性能调优·jmeter性能测试·性能分析·每周读书与学习
张永清2 个月前
每周读书与学习->JMeter主要元件详细介绍(二)函数助手
性能调优·jmeter性能测试·性能分析·每周读书与学习
张永清-老清2 个月前
每周读书与学习->JMeter主要元件详细介绍(一)配置元件
学习·jmeter·性能调优·jmeter性能测试·性能分析·干货分享