VisualVM挂起启动“计算描述”

问题描述 投票:18回答:2

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

ssh -X转发在一台服务器上运行 - 我可以从该机器启动VisualVM,它可以转发并运行正常 - 我将在远程计算机上运行的所有JVM进程视为VVM中的“本地”。

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

我在任何地方都找不到任何相关的东西 - 有人曾经打过这个吗?我如何通过这个?

java x11 visualvm
2个回答
33
投票

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

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.