如何使用JConsole监控Mycat

一、前提

  1. Mycat 是 Java 进程,JDK 自带 jconsole.exe(Windows)或 jconsole(Linux)
  2. 服务器上必须装 JDK(不是只装 JRE)
  3. 知道 Mycat 进程 PID

二、本地监控(Mycat 和 JConsole 在同一台机器)

1. 找到 Mycat 进程 PID

bash
运行
jps -l
会看到:
plaintext
12345 io.mycat.MycatServer

2. 启动 JConsole

  • Windows:jdk/bin/jconsole.exe
  • Linux:直接输入
    bash
    运行
    jconsole
    

3. 连接 Mycat

打开后会列出本地 Java 进程:

选择:

plaintext
io.mycat.MycatServer
点击 连接 → 选择 不安全连接(无需证书)

4. 成功进入监控面板

你能看到 6 大模块:
  1. 概述:CPU、堆内存、线程、类
  2. 内存:堆 / 非堆使用、GC 曲线
  3. 线程:线程数、死锁检测
  4. :加载类数量
  5. VM 摘要:JVM 参数、启动参数
  6. MBean:Mycat 内部状态(连接池、后端节点等)

三、远程监控(最常用:JConsole 在本地,Mycat 在服务器)

步骤 1:修改 Mycat 启动参数,开启 JMX

Mycat 的 JVM 参数在:
plaintext
mycat/conf/wrapper.conf
找到 wrapper.java.additional 开头的行,在后面追加:
plaintext
wrapper.java.additional.10=-Dcom.sun.management.jmxremote
wrapper.java.additional.11=-Dcom.sun.management.jmxremote.port=10003
wrapper.java.additional.12=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.13=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.14=-Djava.rmi.server.hostname=你的服务器IP
注意:
  • 10003 是 JMX 端口,自己随便定
  • hostname 必须写服务器外网 / 内网 IP,不能写 127.0.0.1
  • 防火墙 / 安全组必须开放 10003 端口

步骤 2:重启 Mycat

bash
运行
./mycat stop
./mycat start

步骤 3:本地 JConsole 远程连接

打开 JConsole → 选择 远程进程

输入:

plaintext
服务器IP:10003`
用户名密码留空 → 连接 → 不安全连接 → 进入监控。

四、JConsole 监控 Mycat 重点看什么(实用版)

1. 内存面板(最重要)

  • 堆内存 Heap:是否持续上涨不回落

    上涨不回落 = 内存泄漏

  • GC 时间曲线:频繁尖刺 = GC 频繁,需要调优

2. 线程面板

  • 线程数是否稳定(Mycat 一般几百很正常)
  • 点击 检测死锁

    出现死锁 = Mycat 假死、查询卡住

3. VM 摘要

查看 Mycat 实际启动的 JVM 参数:
  • Xms/Xmx
  • 使用的 GC 算法
  • 启动类路径

4. MBean(Mycat 内部状态)

路径:
plaintext
com.mycat → MycatServer
可以看到:
  • 前端连接数
  • 后端连接池状态
  • dataNode 状态
  • 慢 SQL 统计
  • 路由次数

五、常见问题

1. 远程连接失败

  • 端口没开(10003)
  • hostname 写的 127.0.0.1
  • 服务器防火墙拦截
  • JDK 版本不兼容

2. 看不到 Mycat 进程

  • jps 看不到 → 权限不足
  • 解决:用 root 启动 jps /jconsole

3. 连接提示 “不安全”

直接点 不安全连接 即可,不影响监控。

六、最简单总结

  1. 本地:jconsole 直接选 Mycat 进程
  2. 远程:wrapper.conf 加 5 行 JMX 参数,开放端口
  3. 重点看:堆内存、GC、线程死锁、MBean
上一篇 iEdge概述技术白皮书-6W100
下一篇 s9700交换机是否支持整机下电功能