当前位置: 首页 > 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.dtcms.com/a/313586.html

相关文章:

  • 数据结构基础 - 平衡二叉树
  • async/await和Promise之间的关系是什么?(补充)
  • NSA稀疏注意力深度解析:DeepSeek如何将Transformer复杂度从O(N²)降至线性,实现9倍训练加速
  • 能表示旋转的矩阵是一个流形吗?
  • 【大模型篇】:GPT-Llama-Qwen-Deepseek
  • 数据结构重点内容
  • Go语言实战案例:多协程并发下载网页内容
  • 《 ThreadLocal 工作机制深度解析:高并发场景的利与弊》
  • Mysql深入学习:InnoDB执行引擎篇
  • C++ : 反向迭代器的模拟实现
  • 【图像处理基石】如何使用deepseek进行图像质量的分析?
  • vllm0.8.5:思维链(Chain-of-Thought, CoT)微调模型的输出结果包括</think>,提供一种关闭思考过程的方法
  • MCP协议:CAD地图应用的AI智能化解决方案(唯杰地图MCP)
  • 【数据结构与算法】数据结构初阶:排序内容加餐(二)——文件归并排序思路详解(附代码实现)
  • 【C++】面向对象编程
  • C语言(长期更新)第8讲 函数递归
  • 网络通信与Socket套接字详解
  • C#模式匹配用法与总结
  • 网页 URL 转 Markdown API 接口
  • 大模型中的Token和Tokenizer:核心概念解析
  • 【Unity3D实例-功能-镜头】俯视角
  • MySQL极简安装挑战
  • 数据结构代码
  • IO流-数据流
  • 语义分割--deeplabV3+
  • 企业级AI Agent构建实践:从理论到落地的完整指南
  • 机器学习中的经典算法
  • 算法讲解--最大连续1的个数
  • C++异常与智能指针,资源泄露
  • CMake 命令行参数完全指南