启动visualVM的两种方式

本文介绍了如何通过JMX连接和jstatd方式远程监控Java应用的JVM。首先,详细阐述了配置JMX连接的步骤,包括修改jmxremote.password文件、设置启动参数等。然后,讲解了启动jstatd服务的过程,包括创建jstatd.all.policy文件、设置端口和日志等选项。最后,提到了在VisualVM中建立远程连接的方法,并指出两种方式的区别,jstatd方式不支持VMGC插件但能用于JVM监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 visualVM 使用JMX连接

a 拷贝并改名字到路径:(/app/java/jdk1.8.0_151是java home目录)
源文件:
/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.password.template,
拷贝并改名后:
/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.password

b 并取消注释jmxremote.password 中的如下2行
monitorRole  QED
controlRole   R&D



c 重新启动程序,启动程序时候添加如下参数(指定visualVM的远程端口9999, 远程主机和jmxremote.password路径):
 -Dcom.sun.management.jmxremote.password.file=/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/app/java/jdk1.8.0_151/jre/lib/management/jmxremote.access -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.33.65.9 -Dcom.sun.management.jmxremote.rmi.port=9999


d 打开visualVM, 新建远程连接,比以JMX方式, 指定主机, 端口, 用户monitorRole, 密码:QED即可连接VisualVM

注意:该方式不支持visualVM的VM GC插件, 查看GC, 可以使用jstatd方式连接

==================================================================================

  使用jstatd 启动visualVM:
 a  进入jdk bin目录:
  cd /app/java/jdk1.8.0_151/bin/

 b 创建文件:
  vim jstatd.all.policy


 c  写入如下内容:
  grant codebase "file:${java.home}/../lib/tools.jar" {
     permission java.security.AllPermission;
  };

  若没有配置 JDK 环境变量,file 后面添加 tool.jar 的绝对路径

  grant codebase "file:/app/java/jdk1.8.0_151/lib/tools.jar" {
       permission java.security.AllPermission;
    };


d 启动: $JAVA_HOME/bin下启动jstatd进程,启动命令如下,默认监听1099端口,此处修改为3333端口
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.33.65.9 -p 3333 -J-Djava.rmi.server.logCalls=true

参数说明:
-J-Djava.security.policy=jstatd.all.policy =号后面的是文件的绝对路径;
-J-Djava.rmi.server.logCalls=true 打开日志,如果客户端有连接过来的请求,可以监控到,便于排错;
-J-Djava.rmi.server.hostname=10.33.65.9 指明本机 hostname 对应的本机地址,确保该地址可以给客户机访问。因为有的服务器 hostname 对应的 ip 不一定是外网能连上的,最好在这里直接明确指定;
-p 3333 指定服务的端口号,默认是1099。也是可选参数。


使用 lsof -i:3333 查看端口是否正常被监听


jvisualvm 添加 ip 为192.168.134.128 端口为 3333 的远程机器,这样可以使用jstatd方式远程监控JVM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值