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",点击"确定"连接。

相关推荐
IT成长日记3 个月前
【Hive入门】Hive与Spark SQL深度集成:执行引擎性能全面对比与调优分析
hive·sql·spark·性能分析·spark sql·执行引擎
Light603 个月前
探秘数据结构:构建高效算法的灵魂密码
数据结构·可视化·算法优化·性能分析·应用场景
Hi202402174 个月前
基于ltrace的linux自定义函数耗时统计方法
linux·调试·性能分析·c/c++
二月十六5 个月前
SQL Server性能分析利器:SET STATISTICS TIME ON 详解与实战案例
数据库·性能分析
mahuifa5 个月前
C++(Qt)软件调试---Windows 性能分析器WPA(28)
c++·windows·性能分析·wpa·wpr
亦世凡华、7 个月前
MySQL--》如何在MySQL中打造高效优化索引
数据库·经验分享·mysql·索引·性能分析
三天不学习8 个月前
MiniProfiler WebAPI 分析工具
c#·.net·性能分析·miniprofiler
hhhcbw9 个月前
Visual Studio2022 Profile 工具使用
visual studio·性能分析·profile
Amd79410 个月前
Nuxt.js 应用中的 page:finish 钩子详解
nuxt.js·性能分析·用户体验·钩子·suspense·状态更新·page:finish