Note: There are two ways for VisualVM to connect to the remote server: JMX and jstatd. Neither method can perfectly support all functions.
For example, JMX does not support VisualGC,
jstatd does not support CPU monitoring,
can be configured at the same time and selected as needed for actual use.
jvisualvm program adds a remote connection, please turn off the local firewall.
The normal springboot startup command is
nohup java -jar demo.jar &
After using monitoring:
nohup java -Djava.rmi.server.hostname=192.168.81.149 \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1099 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -jar jvm-1.0-SNAPSHOT.jar &
java -Djava.rmi.server.hostname=192.168.81.149 \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=1099 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ -jar jvm-1.0-SNAPSHOT.jar
jvm -1.0-SNAPSHOT.jar is the jar package of the project
192.168.81.149 is the machine ip where the project is deployed
1099 is the remote port number that jvisualvm needs to connect to
authenticate=false Not enabled, user authentication
vi jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; };
jstatd -J-Djava.security.policy=jstatd.all.policy \ -J-Djava.rmi.server.hostname=192.168.81.149 \ -J-Djava.rmi.server.logCalls=true -p 1098
-J-Djava.security.policy=jstatd.all.policy 指定路径 -J-Djava.rmi.server.logCalls=true 打印日志 -J-Djava.rmi.server.hostname=192.168.81.149 指定主机名,主机名应该和你用hostname -i命令执行出来的结果一致。
java -jar jvm-1.0-SNAPSHOT.jar
The above is the detailed content of How to monitor remote SpringBoot project with Jvisualvm. For more information, please follow other related articles on the PHP Chinese website!