使用JVisualVM进行JVM远程分析

时间:2013-02-05 20:04:29

标签: java jvm profiling jvisualvm

我正在尝试在远程主机上配置我的jvm应用程序。 我正在使用Jvisualvm 我在这个http://www.codefactorycr.com/java-visualvm-to-profile-a-remote-server.html中建议使用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 local:Mac OSX Oracle jdk 1.6.37 remote:centos 6 oracle jdk 1.6.24

2 个答案:

答案 0 :(得分:1)

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个课程才能对它们做些什么。我想你知道这个

答案 1 :(得分:1)

您需要在远程计算机上启动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服务后,您基本上使用添加远程主机在jvisualVM UI上添加远程连接IP地址连接。

可以在https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/applications_remote.html引用JvisualVM的Oracle文档,但理解jstatd步骤确实令人困惑。