使用VisualVm,JMX方式和jstate方式调用远程环境,查看JVM情况。
目录:
一.远程JVM添加账号
二.远程java项目启动时增加监听接口
三.本地VisualVm连接远程JVM
四.jstate方式调用
五.JVM部分参数介绍
一.远程JVM添加账号
我们找到服务器的 JAVA jre 的地址:
java -verbose
进入management 目录
里面有这几个文件
复制一份 jmxremote.password 文件
cp -r jmxremote.password.template jmxremote.password
准备修改改文件内容,注意如果文件没有修改权限记得加上
chmod 600 jmxremote.password
vim jmxremote.password
增加 一个账号 和密码,用空格隔开。
修改 jmxremote.access文件
vim jmxremote.access
拷贝一份配置,把名字改成自己的账号。
二.远程java项目启动时增加监听接口
启动Java项目的时候,添加JVM的参数。
-Dcom.sun.management.jmxremote.port=8091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=11.11.11.11
四行配置分别是(远程调用请求的端口、是否要求ssl连接、是否认证、服务器的远程ip地址)
如果不清楚自己的远程ip地址 可以执行下面的命令。
curl ifconfig.me
三.本地VisualVm连接远程JVM
打开VisualVm。添加远程主机 -- 输入远程 IP 地址 -- 确认。
输入 项目启动时配置的 端口,JVM 添加的 管理员账号。确定。双击点开就可以看到JVM的运行情况了。
四.jstate方式调用
在JDK的 bin 目录下增加 jstatd.all.policy 文件。内容如下,地址改为自己的地址。
[root@localhost /]# cd /usr/local/jdk1.8.0_181/bin/ [root@localhost bin]# vim jstatd.all.policy grant codebase "file:/usr/local/jdk1.8.0_181/lib/tools.jar" { permission java.security.AllPermission; };
在 bin 目录下,执行以下命令
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=11.11.11.11 -p 8090
五.JVM部分参数介绍