Java 使用JVisualVM进行JVM远程评测

Java 使用JVisualVM进行JVM远程评测,java,jvm,profiling,jvisualvm,Java,Jvm,Profiling,Jvisualvm,我试图在远程主机上评测我的jvm应用程序。 我正在使用Jvisualvm 我将jstatd设置为本文推荐的(删除链接,导致钓鱼网站)。 我能够成功地“telnet remotehost 1099”。所有tcp/ip端口都是远程防火墙打开的 我在jvisualvm中添加了我的远程主机。另外,确保jstatd端口是1099端口,刷新时间为3秒 我的申请是从 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8011

我试图在远程主机上评测我的jvm应用程序。 我正在使用Jvisualvm 我将jstatd设置为本文推荐的(删除链接,导致钓鱼网站)。 我能够成功地“telnet remotehost 1099”。所有tcp/ip端口都是远程防火墙打开的

我在jvisualvm中添加了我的远程主机。另外,确保jstatd端口是1099端口,刷新时间为3秒

我的申请是从

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=8011 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
但是,我的jvm应用程序不会出现在我的jvisualvm中。还有什么我需要配置或检查的吗

jvisualvm 1.3.5 本地:Mac OSX Oracle jdk 1.6.37 远程:centos 6 oracle jdk 1.6.24

1)您应该在启用
JMX
的情况下启动应用程序
远程连接示例

-Dcom.sun.management.jmxremote    
-Dcom.sun.management.jmxremote.port=9990   
-Dcom.sun.management.jmxremote.authenticate=false   
-Dcom.sun.management.jmxremote.ssl=false  

2) 您应该拥有
JMX
类,以便能够使用它们做一些事情。我想您知道这一点

您需要在远程机器上启动
jstatd
。为此,在远程计算机的主目录中创建一个
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={Your IP address} '
一旦
jstatd
服务在远程机器上启动,您基本上可以使用addremotehost在jvisualVM用户界面上添加远程连接IP地址连接


关于JvisualVM的Oracle文档可以参考,但是理解
jstatd
步骤确实令人困惑。

是的,我用我正在使用的命令行选项更新了我的问题。我不确定的部分是通信链路。a) Jvisualvm与jstatd默认端口1099通信。与jxmremote.port的关系是什么。b) 另外,不确定您所说的拥有JXM类是什么意思。另一个注意事项是确保您作为普通用户启动VisualVM,即不要使用
psexec-s
。VisualVM中的功能在Local上的右键单击菜单中也称为AddJStatdConnection。