jconsole与jvisualvm监控

jconsole与jvisualvm监控

1.介绍

jconsole.exe 和 jvisualvm.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.exe 或 jvisualvm.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",点击"确定"连接。

相关推荐
Helix25013 小时前
Chrome 开发者工具进阶:长截图、网络调试与性能分析
前端·chrome·chrome devtools·使用技巧·性能分析·开发者工具·长截图
AI智讯中枢7 天前
高性能 C++ 实战 (五):perf+FlameGraph 火焰图生产实战,精准定位 CPU / 缓存 / 锁瓶颈,避坑 + 完整实操案例
linux·c++·性能调优·性能分析·perf·flamegraph·火焰图
liferecords17 天前
第 12 讲 · Python 侧接入:火焰图定位热点与间接使用硬件加速
python·性能分析·鲲鹏·火焰图·ctypes
蒸鱼Yuzheng17 天前
Unity 与 Unreal 测试工具怎么回答:Profiler、日志、自动化与证据链
测试工具·unity·性能分析·游戏测试·unrealengine
liferecords18 天前
第 6 讲 · KSYS 实战:用数据定位瓶颈,而不是靠猜
性能调优·性能分析·鲲鹏·ksys·devkit
张永清2 个月前
每周读书与学习->张永清性能测试知识体系
性能测试·性能调优·jmeter性能测试·性能分析·性能监控·每周读书与学习
爱喝水的鱼丶2 个月前
SAP-ABAP:SAP性能分析核心工具入门——ST05/SAT/ST12等常用事务码的基础用法解析
性能优化·sap·abap·性能分析·开发交流·交流学习
故渊at4 个月前
第十板块:Android 系统稳定性与调试 | 第二十六篇:Systrace 与 Perfetto 的系统级性能分析
android·perfetto·性能分析·systrace·系统稳定性
一直会游泳的小猫4 个月前
当 AI 驾驶浏览器:深入解析 Chrome DevTools MCP
性能分析·浏览器自动化·cdp·mcp·ai 辅助调试
MC皮蛋侠客4 个月前
Perf 火焰图深度实战:CPU 性能分析与异常排查完全指南
linux·c++·性能分析·perf·火焰图