首页 技术 正文
技术 2022年11月6日
0 收藏 803 点赞 946 浏览 1335 个字

自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建的MBean)注册到它里面,然后暴露给JMX client管理。简单来说就是每个Java程序都可以通过JMX来被JMX client管理,而且这一切都是自动发生的。而VisualVm就是一个JMX Client。

VisualVm能够自动发现本机的Java进程,如果要监控远程主机上的Java进程则需要显式地配置JMX连接,下面讲配置方法:

第一步:已经用jstatd连接了远程主机

已经根据利用VisualVm远程监控Java进程里的方法在VisualVm里添加了远程主机。

PS. 在实际使用过程中这个似乎不是必须的,但是如果不做,有些信息就会获取不到,因此还是做一下吧。

第二步:与启动相关的System Properties

要给远程主机上的监控的Java进程在启动时必须带上几个JMX相关的System Properties(常用的几个):

  • com.sun.management.jmxremote.port, 指定暴露的JMX端口。
  • com.sun.management.jmxremote.ssl, 指定是否使用SSL,在开发环境下可以是false,但是在生产环境下强烈建议为true。
  • com.sun.management.jmxremote.authenticate, 指定是否需要密码才能够创建JMX连接。

为了演示目的,我们用Tomcat来测试,不开启ssl和authenticate,把JMX端口设置为1100,执行下列命令启动Tomcat:

CATALINA_OPTS='-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1100 -Djava.rmi.server.hostname=k8s-oracle' bin/startup.sh

利用VisualVm和JMX远程监控Java进程利用VisualVm和JMX远程监控Java进程

注意上面有一个-Djava.rmi.server.hostname=k8s-oracle参数,JMX agent本质上也是一个RMI server,因此需要指定这个参数,否则就会像利用VisualVm远程监控Java进程里提到的一样,VisualVm无法连接到该Java进程。
想学习更多java知识的朋友可以进群:874811168 一起学习 还有全套的免费资料领取

PS. 使用SSL方式保护JMX连接的方法会另写文章说明。

第三步:创建JMX连接

在远程主机上右键,选择添加JMX连接(在下图里出现了之前启动的Tomcat进程):

利用VisualVm和JMX远程监控Java进程

根据Java进程启动时设置的JMX System Properties配置JMX连接:

利用VisualVm和JMX远程监控Java进程

成功后你会发现多了一个进程,小图标上有JMX字样:

利用VisualVm和JMX远程监控Java进程

双击这个进程,你就能看到CPU、线程、还有MBeans了。

出处:https://segmentfault.com/a/1190000016636787

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,991
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,506
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844