我们都知道JDK里边自带的 jmap 命令可以获取到 JVM 的内存信息。为了实时监控 JVM 的状态,需要在一定的周期内持续获取数据。
通过搜索,知道了 JMX(Java Management Extensions)
-
解压 jmx_example.zip:
unzip jmx_examples.zip -
编译com/example下的java程序:
javac com/example/*.java -
运行Main:
java -Dcom.sun.management.jmxremote.port=9999 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ com/example/Main注:-Dcom.sun.management.jmxremote.port 是为了指定需要远程监控时获取数据的端口。
-Dcom.sun.management.jmxremote.authenticate=false 是指定是否需要验证。
-Dcom.sun.management.jmxremote.ssl=false 通过SSL方式访问。
-
在远程终端通过 JDK 自带的 jconsole 查看:
jconsole然后就可以看到如图所示的界面:

在远程地址中输入IP:port后,点击连接就可以看到如下界面: -
通过 jmx client 方式获取 MBEAN ,例如获取Threading BEAN 下的DaemonThreadCount:
java -jar jmxclient.jar - localhost:9999 java.lang:type=Threading DaemonThreadCount
本文介绍了如何利用Java Management Extensions (JMX) 进行JVM监控,包括配置远程访问参数、编译及运行示例程序,并展示了如何通过jconsole进行连接及使用jmxclient获取特定MBEAN数据。
1809

被折叠的 条评论
为什么被折叠?



