JVM--基础--27.2--工具--VisualVM--远程连接

JVM–基础–27.2–工具–VisualVM–远程连接


1、准备工作

准备工作是为了测试使用

1.1、代码地址

https://gitee.com/DanShenGuiZu/learnDemo/tree/master/visualvm-learn/demo1

1.2、将jar包放到机器上

在这里插入图片描述

2、远程连接–JMX方式

2.1、修改JDK配置文件

# 进入修改目录
cd /usr/local/jdk1.8/jre/lib/management
# 拷贝配置文件
cp jmxremote.password.template jmxremote.password

#  去掉 # monitorRole  QED  的注释符号
#  去掉 # controlRole  R&D  的注释符号
sed -i 's/# monitorRole/monitorRole/p' jmxremote.password
sed -i 's/# controlRole/controlRole/p' jmxremote.password
#  查看内容
cat jmxremote.password

在这里插入图片描述

2.2、添加java启动参数

JAVA_OPTS="
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 
-Djava.rmi.server.hostname=192.168.187.139 
-Dcom.sun.management.jmxremote.rmi.port=9999
"
 

2.2.1、-Djava.rmi.server.hostname=192.168.187.139

远程服务器的主机名

2.2.2、-Dcom.sun.management.jmxremote

  1. 是否支持远程JMX访问
  2. 默认:true;

2.2.3、-Dcom.sun.management.jmxremote.port

  1. JMX远程监控端口号
  2. 需要在防火墙开放该端口

2.2.4、-Dcom.sun.management.jmxremote.ssl=false

  1. 表示是否对连接开启SSL加密
  2. 默认:开启

2.2.5、-Dcom.sun.management.jmxremote.authenticate=false

  1. 是否需要开启用户认证
  2. 默认:开启
    1. 如果开启需要额外配置授权文件

2.2.6、 -Dcom.sun.management.jmxremote.rmi.port=9999

  1. RMI端口号(远程连接的端口)
    1. JMX在远程连接时,会随机开启一个RMI端口作为连接的数据端口
    2. 可以和JMX端口号相同
  2. 这里我们指定了RMI的端口号

2.3、启动java

# 启动java
nohup java -server  \
-Xms512m   \
-Xmx512m   \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9999   \
-Dcom.sun.management.jmxremote.ssl=false   \
-Dcom.sun.management.jmxremote.authenticate=false   \
-Djava.rmi.server.hostname=192.168.187.139  \
-Dcom.sun.management.jmxremote.rmi.port=9999  \
-jar /home/hd/java/demo1-0.0.1-SNAPSHOT.jar  /home/hd/java/log.log  2>&1  &

 
#  查看
ps -ef |grep  java

在这里插入图片描述

2.4、 连接

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、远程连接–jstatd方式

3.1、配置安全策略

vim /usr/local/jdk1.8/jre/lib/security/java.policy 


新增内容

permission java.security.AllPermission;

或者执行下面命令

# 在sun.security.pkcs11.disableKeyExtraction行的下一行,新增permission java.security.AllPermission;
sed -i '/"sun.security.pkcs11.disableKeyExtraction"/a\        permission java.security.AllPermission;'  /usr/local/jdk1.8/jre/lib/security/java.policy

在这里插入图片描述

3.2、启动jstatd

/usr/local/jdk1.8/bin/jstatd -J-Djava.security.policy=all.policy &

启动后会开启注册端口1099和一个随机的连接端口,注册端口也可通过-p参数指定,如

/usr/local/jdk1.8/bin/jstatd -J-Djava.security.policy=all.policy  -p 10003 &

3.3、查看

通常VisualVM会自动检测到jstatd连接并添加节点

如果没有自动添加,可以手动添加连接

在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值