Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 远程jvisualvm会话不支持CPU和评测_Java_Jmx_Jvisualvm - Fatal编程技术网

Java 远程jvisualvm会话不支持CPU和评测

Java 远程jvisualvm会话不支持CPU和评测,java,jmx,jvisualvm,Java,Jmx,Jvisualvm,当监控远程应用程序(使用jstatd)时,我既不能评测也不能监控CPU消耗。堆监视(假设我不使用G1)是有效的。jvisualvm在CPU图形窗口中提供消息“此JVM不受支持” 我的设置中是否缺少任何内容?谷歌显示的结果很少 本地环境(Mac OS X 10.6): 远程环境(Linux版本2.6.16.27-0.9-smp(gcc版本4.1.0(SUSE Linux)): 本地监视的工作方式与广告中的一样。这是因为远程版本(尽管稍微)比本地版本大吗?Visual VM不支持对代码和分配进行远程

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

我的设置中是否缺少任何内容?谷歌显示的结果很少

本地环境(Mac OS X 10.6):

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


本地监视的工作方式与广告中的一样。

这是因为远程版本(尽管稍微)比本地版本大吗?

Visual VM不支持对代码和分配进行远程评测。这很糟糕,但是如果您想启用CPU图,可以通过使用启用JMX来实现

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
您可能还需要根据您的网络添加一些身份验证设置。JMX设置将为您提供CPU使用率和线程状态,以及执行远程jstack

可在此处找到远程版本的功能列表:

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

连接EclipseJava程序

步骤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:重要的是遵循以下建议

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

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


另外,请尝试使用JVMMonitor作为eclipse独立程序监控的一个不错的插件。

我可以通过为JMX和RMI提供相同的端口号来解决这个问题

-Dcom.sun.management.jmxremote.port=29898 
-Dcom.sun.management.jmxremote.rmi.port=29898

请参见

工作+1用于visualvm 1.2.1和插件建议&已接受。后续:1.6中的JMX默认启用了安全性。对于开发,您可能希望禁用安全性,请参阅“Visual VM不支持代码和分配的远程评测”-这在jvisualvm 1.3.8中仍然正确吗?添加
-Dcom.sun.management.jmxremote.port
对我来说已经足够了(IntelliJ+JBoss)。我的虚拟机完全监控选项是:
-XX:+UnlockCommercialFeatures-XX:+FlightRecorder-Dcom.sun.management.jmxremote=true
我不知道确切原因,但我还必须添加
-Djava.rmi.server.hostname=localhost
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.port=29898 
-Dcom.sun.management.jmxremote.rmi.port=29898