远程jvisualvm会话不支持CPU和分析

在监视远程应用程序时(使用jstatd)我既不能分析也不能监视CPU消耗。 堆监控(假设我不使用G1)有效。 jvisualvm提供消息“此JVM不支持”。 在CPU图形窗口中。

我的设置中是否有任何遗漏? 谷歌显示的结果很少。

本地环境(Mac OS X 10.6):

java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219) Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode) 

远程环境(Linux版本2.6.16.27-0.9-smp(gcc版本4.1.0(SUSE Linux))):

 java version "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode) 

本地监控按照广告宣传。

Visual VM不支持远程分析代码和分配。 这很糟糕,但是如果你想启用CPU图,你可以通过启用JMX来实现

 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 

您可能还需要根据网络添加一些身份validation设置。 JMX设置将为您提供CPU使用率,线程状态以及远程jstack。

可以在此处找到远程版本的function列表: Visual VMfunction

编辑获取最新版本的visual vm 1.2.1并下载VisaulVM-Sampler。 这将从JMX连接读取以显示分析信息。

连接eclipse java程序。

第1步:确保您的Eclipse – > Preferences – > Java – > Installed JRE指向您启动visualvm的相同jdk。

第2步:确保右键单击 – >运行配置具有以下内容

-Dcom.sun.management.jmxremote = true -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.port = 16001

第3步:重要的是遵循以下建议。

https://visualvm.java.net/troubleshooting.html#jpswin2

说明:VisualVM启动后立即显示一个错误对话框,指出无法监视本地应用程序。 本地运行的Java应用程序显示为(pid ###)。

解决方案:如果用户名包含大写字母,则可能会在Windows系统上发生此问题。 在这种情况下,username是UserName,但JDK创建的jvmstat目录是%TMP%\ hsperfdata_username。 要解决此问题,请退出所有Java应用程序,删除%TMP%\ hsperfdata_username目录并创建新的%TMP%\ hsperfdata_UserName目录。

另外尝试JVMMonitor是适合eclipse独立程序监控的体面插件。

是因为远程版本(虽然稍微)大于本地版本?