一,windows本地连接
通过命令行执行以下命令
jvisualvm
即可弹出visualvm窗口,可直接查看本地java服务的相关信息,包括CPU,内存,类与线程的数量等等。
二,远程连接
visualvm远程连接服务器查看服务的VM信息有两种途径:JMX和Jstatd。
2.1 JMX
JMX(Java Management Extensions)是一个为应用程序植入管理功能的标准化代理和服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等。JConsole以及JVisualVM 都是通过JMX来实现对JAVA应用程序的监控。
2.1.1 服务器配置
visualvm通过JMX方式进行远程连接,需要对服务器进行配置。
# 切换到服务器的jdk安装路径下
cd /Data/app/oracle/product/11.2.0/dbhome_1/jdk
# 切换到jmx配置的子目录下
cd jre/lib/management
# 将目录下的模板文件复制后,再进行修改
cp jmxremote.password.template jmxremote.password
vim jmxremote.password
# 去掉 [# monitorRole QED]和[# controlRole R&D]的注释符号
sed -i 's/# monitorRole/monitorRole/p' jmxremote.password
sed -i 's/# controlRole/controlRole/p' jmxremote.password
2.1.2 运行服务命令配置
运行服务时添加参数配置
java -server \
-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=10.175.94.106 \
-Dcom.sun.management.jmxremote.rmi.port=9999 \
-jar xxx.jar
参数解释
com.sun.management.jmxremote: 是否支持远程JMX访问,默认为true
com.sun.management.jmxremote.port: JMX远程监控端口号,注意防火墙开放端口
com.sun.management.jmxremote.ssl: 表示是否对连接开启SSL加密,默认开启
com.sun.management.jmxremote.authenticate: 是否需要开启用户认证,默认开启
java.rmi.server.hostname: 远程服务器的主机名
sun.management.jmxremote.rmi.port: RMI端口号(JMX在远程连接时,会随机开启一个RMI端口作为连接的数据端口),可以指定和JMX端口号相同
2.1.3 配置visualvm
服务器配置结束后,在visualvm左边栏的【远程】菜单右键添加远程主机。
在添加成功后的主机右键添加JMX连接时,连接输入框写上
10.175.94.106:9999
就可以查看该服务的VM信息。
这种方式每次都需要应用程序指定端口,使用时多多少少有些不方便。
2.2 Jstatd
命令jstatd是一个RMI服务端程序,它的作用相当于代理服务器,建立本地计算机与远程监控工具的通信。jstatd服务器将本机的Java应用程序信息传递到远程计算机。
2.2.1 配置安全策略
# 同样进入到jdk目录
cd /Data/app/oracle/product/11.2.0/dbhome_1/jdk
# 切换到配置安全策略的子目录下
cd jre/lib/security
# 配置安全策略
vim java.policy
# 在文件中新增一行:permission java.security.AllPermission;
# 启动jstatd
/Data/app/oracle/product/11.2.0/dbhome_1/jdk/bin/jstatd -J-Djava.security.policy=all.policy &
2.2.2 visualvm查看
在服务器执行命令后,在visualvm就可以看到该服务器正在运行中的Java应用程序了。文章来源:https://www.toymoban.com/news/detail-666560.html
2.3 连接docker服务
2.3.1 JMX
修改Dockerfile文件即可文章来源地址https://www.toymoban.com/news/detail-666560.html
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-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=xxx.xxx.xxx.xxx", "-Dcom.sun.management.jmxremote.rmi.port=9999", "-jar","/app.jar"]
到了这里,关于visualvm工具的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!