java VisualVM 远程监控程序的运行情况,查看Visual GC时,显示”不受此jvm支持“。

在jdk的bin目录下添加配置文件 jstatd.all.policy
[root@template bin]# cd /usr/lib/jvm/jdk1.8.0_181/bin
[root@template bin]# vim jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
如果没有配置javahome,tools.jar可以写绝对路径 ,一般在lib目录下:/usr/lib/jvm/jdk1.8.0_181/lib/tools.jar。
在/bin目录下启动VisualVM,后台启动(日志输出到文件里)
[root@template bin]# nohup /usr/lib/jvm/jdk1.8.0_181/bin/jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.7.104.119 -p 7001 -J-Djava.rmi.server.logCalls=true >/data/jdk.log 2>&1 &注意:启动命令一定要在/bin目录下(含有jstatd)执行
hostname是本机真实ip;
policy:就是上面新建的文件;
-p 是监听的端口,默认是1099,可以修改
logcalls:是客户端连接过来时的日志输出
在java VisualVM里添加jstatd,端口号是上面我们配置的那个。添加完后会把这个服务器下的全部应用程序信息展示出来,可以挑选自己媳妇的程序查看gc了。

注意:启动后可以看一下端口号是否被监听:lsof -i:7001

文章介绍了如何通过配置jstatd.all.policy文件,授予所有权限,以便在JavaVisualVM中远程监控程序运行情况。通过在jdk的bin目录下启动jstatd服务,并指定java.security.policy、java.rmi.server.hostname和监听端口,可以成功显示并分析GC。启动后,使用lsof检查端口监听状态,确保服务正常运行。
2706

被折叠的 条评论
为什么被折叠?



