您现在的位置是:首页 >  云笔记 >  开发笔记 >  文章详情

JAVA性能调优:VisualVM使用Jstatd远程监控服务器配置详解

豆豆   2019-12-26 19:29:13   992人已围观

           VisualVM有Jstatd和JMX  2种远程监控配置,在上一篇文章中已经介绍了JMX的配置介绍,在这里详细介绍一下jstatd的配置方式。jstatd可以实时显示本地或远程JVM进程中类装载、内存、垃圾收集、JIT编译等数据。如果要显示远程JVM信息,需要远程主机开启RMI支持,详情如下:

1. 在JAVA_HOME/bin目录下创建jstatd服务器授权文件jstatd.all.policy,文件内的代码如下:

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

文件创建后需要给该文件加上执行权限 chmod +x jstatd.all.policy,如下图:

jstatd-policy文件创建.png

2. 在启动jstatd之前需要做一些检查:

     2.1、查看端口是否被占用 :

            netstat -ano | grep -i 1099

           如果显示的状态是LISTEN就表示被占用了,没有则表示可用状态。

    2.2、检查linux的hostname匹配的IP,执行:hostname -i 命令。如果匹配的结果是无法识别或者127.0.0.1, 则需要手动配置主机名和IP映射。假设要用于建立连接的IP是192.168.11.233,主机名 是mylinux:

            vi /etc/hosts

            添加一行

           192.168.11.233  mylinux

   2.3、JDK的环境变量JAVA_HOME,CLASSPATH,PATH都得配置好,检查命令:cat /etc/profile :

jdk环境变量.png

   2.4、其他

3. 切换到java/bin目录下,启动Jstatd服务器,执行命令:

 ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.19.114 -J-Djava.rmi.server.logCalls=true
 //注意:这里的IP是远程服务器外网IP

       jstatd命令描述以及参数说明:

         statd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。

          -J-Djava.security.policy=jstatdAllPolicy 指定安全策略文件名称

          -p 1099  指定启动端口

         -J-Djava.rmi.server.hostname=192.168.xxx.xxx  指定本机IP地址,在hosts文件配置不正常时使用,最好加上。

3. 如若出现端口占用问题,在启动jstatd服务器时选择其它端口。


//启动jstatd服务器时,指定其它端口 

rmiregistry 2030 & jstatd -J-Djava.security.policy=jstatd.all.policy -p 2030

至此,远程服务器配置完成

4.打开JAVA_HOME/bin目录下的 jvisualvm.exe

在远程上右键,添加远程主机,输入远程服务器IP

在添加的远程主机上右键,添加jstatd连接


参考文章:

 1、http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstatd.html

 2、https://www.cnblogs.com/grey-wolf/p/9234780.html


分享到:

编辑发布时间:2019-12-26 19:29:13