远程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独立程序监控的体面插件。
是因为远程版本(虽然稍微)大于本地版本?