当监控远程应用程序(使用 jstatd)时,我既不能分析也不能监控 CPU 消耗。堆监控(前提是我不使用 G1)有效。 jvisualvm 提供消息“此 JVM 不支持”。在 CPU 图形窗口中。
我的设置中是否缺少任何内容? Google 显示的结果很少。
本地环境(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
您可能还需要根据您的网络添加一些身份验证设置。 JMX 设置将为您提供 CPU 使用率、线程状态以及执行远程 jstack。
可在此处找到远程版本的功能列表: Visual VM features
编辑 获取最新版本的 visual vm 1.2.1 并下载 VisaulVM-Sampler。这将从 JMX 连接读取以显示分析信息。
关于java - 远程 jvisualvm session 不支持 CPU 和分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1755819/