使用VisualVM监控java进程

一、安装插件

工具—插件—设置,可以修改配置中心地址(默认不用改),对应版本在这里查看 https://visualvm.github.io/pluginscenters.html

工具—插件—可用插件,勾选VisualGC安装

二、JMX连接

在VisualVM中右键远程,添加远程主机,输入ip

在java的jvm配置中增加如下配置

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.20.64.123 -Dcom.sun.management.jmxremote.port=1099"

-Dcom.sun.management.jmxremote.authenticate=false 是否启用验证

-Dcom.sun.management.jmxremote.ssl=false 是否启用ssl

-Djava.rmi.server.hostname=119.23.250.83 指定远程主机的ip地址

-Dcom.sun.management.jmxremote.port=1099 指定连接的端口号

重启后在远程主机右键添加JMX连接,输入端口,就能看到除了VisualGC以外的内容,如果要看VisualGC需要建立jstatd连接

三、jstatd连接

在服务器jdk的bin文件里新建一个名为jstatd.all.policy的文件

grant codebase "file:${java.home}/../lib/tools.jar" { 
    permission java.security.AllPermission; 
};

在bin目录中执行

./jstatd -J-Djava.rmi.server.hostname=10.20.64.123 -J-Djava.security.policy=jstatd.all.policy -p 1100

注:在结尾空一格加个"&"可以后台运行

在远程主机右键添加jstatd连接,输入端口,就能看到机器上的java程序信息,点开可以看到VisualGC信息

如果发现这种看不了cpu信息的话,可以再创建JMX连接,这样新建的JMX连接可以看到cpu信息和VisualGC信息了

原文地址:https://www.cnblogs.com/ctxsdhy/p/12378532.html