21

我有两台远程服务器,都运行最近的 CentOS,都运行最近的 Tomcat6、最近的 JDK6 和 VisualVM 1.3.2。

ssh -X 转发在一台服务器上工作——我可以从那台机器启动 VisualVM,它端口转发并运行良好——我看到在该远程机器上运行的所有 JVM 进程在 VVM 中都是“本地”的。

ssh -X 在第二台机器上转发 - 然后运行 ​​VisualVM - 会打开一个带有 VVM 的 X 窗口,但它只显示一个“本地”进程 - VisualVM 本身 - 右下角有一个弹跳进度条,上面写着“计算描述”,它永远不会结束。

我在任何地方都找不到有关此的任何信息-有人打过这个吗?我该如何度过这个难关?

4

4 回答 4

35

我遇到了类似的问题 - VisualVM 挂在“计算描述”上,不显示除自身之外的任何本地 JVM。我使用“jps”来查找系统上运行的所有 JVM。使用 jstack 来获取所有这些 JVM 的堆栈,包括 JVisualVM 本身。我发现正在发生的事情是,JVisualVM 正在尝试创建与其中一个目标 VM 的 RMI 连接,并且该 VM 在 RMI 连接尝试上挂起。就我而言,它挂起的原因是我将 JVisualVM 分析器附加到了该 JVM,但 JVisualVM 随后因 PermGen OOM 而死。部分分析器仍在目标 JVM 中运行,但由于缺少分析器前端而挂起;因此,任何类加载尝试都会挂起,这将导致来自新 JVisualVM 实例的传入 RMI 也挂起。

没有任何线程转储,我不能说您的问题是否与我的问题相似;但如果有人再次遇到这个问题,收集线程转储是个好主意。无论根本原因是什么,重新启动机器上的所有 JVM(例如重新启动)都有合理的机会解决它。

于 2013-03-12T02:37:11.233 回答
2

如果您的 JVM 在调试断点处暂停,那么这将导致 VisualVM 挂起。

于 2019-02-14T00:22:20.163 回答
0

我面临同样的问题 - 然后我遇到了这篇文章https://github.com/oracle/visualvm/issues/82。然后我杀死了我机器上的所有 JVM/JDK 会话。重新启动视觉虚拟机 - 稍等片刻,就可以了,它不再挂起。简而言之,当您在 IP 之间切换时,视觉 vm 会挂起。

于 2020-08-07T15:33:09.823 回答
0

我将 VisualVM 与 IntelliJ 结合使用。对我来说,VisualVM 挂起是因为我使用的是 VPN 连接。关闭 VPN 后问题解决。

于 2020-08-27T19:03:47.017 回答