VisualVM 显示“此 JVM 不支持”

Yan*_*off 6 java profiling visualvm jstatd

我正在尝试使用 VisualVM 1.4 分析远程 JVM。我在本地运行 macOS High Sierra 10.13.6,具有以下 OpenJDK 版本:

java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.181-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

服务器运行带有以下 OpenJDK 的 Debian Stretch:

java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

当我在本地监视 JVM 进程时,我会看到所有这些选项卡,并且分析工作正常。

在此输入图像描述

但是,如果我远程执行此操作,我会看到如下内容:

在此输入图像描述

请注意显示“此 JVM 不支持”的 CPU 窗口和减少的选项卡,不包括“Profiler”。然而,正如你所看到的,我确实看到了一些数据。

我正在通过 进行连接jstatd。在服务器上,按照本文,我正在运行

jstatd -J-Djava.security.policy=/home/brandwatch/jstatd.all.policy -J-Djava.rmi.server.hostname=10.2.156.160 -Djava.rmi.server.logCalltrue
Run Code Online (Sandbox Code Playgroud)

像这样的答案表明这可能是由于不同的 JVM 版本造成的,但是,我的似乎是相同的,尽管其中一个运行在 MacOS 上,另一个运行在 Debian 上。

Tom*_*rka 2

缺少CPU使用信息与不同的JDK版本无关。您看不到 CPU 使用率数据,因为jvmstat(通过 jstatd 导出)不提供此类信息。如果想查看CPU使用情况,需要使用JMX连接。JMX 还允许您进行 CPU 和内存采样。仅本地应用程序支持分析。