JConsole有界面,能够比较方便地看到堆内存 \线程\类,以及JMX的变化. 线下环境中算是个不错的诊断工具.
那怎么操作呢? 十分简单, 本地的JDK安装路径中找到 jConsole.exe ,双击,填写远程JVM进程即可.
要注意: JConsole使用时要求远程JVM打开了 JMX 端口, JMX端口和服务端口是不同的. 这一点,经常搞忘了…
比如, kafka 服务端口默认是9092,我们极少改动; 但是JMX一般设为 9999.
连接成功后最后得到界面像这样:
看到界面上的多个TAB, 我们可以得到多个维度的JVM指标.
不过个人觉得最有用处的还是查看JMX .
kafka提供了N多个JMX指标(metrics) ,就连官方文档都没有列举完全. 通过JConsole 查阅各种JMX,然后我们借以参考开发定制的监控&告警系统了.