VisualVM挂在启动“计算描述”上

2022-09-02 03:24:08

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

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

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

我在任何地方都找不到有关此内容的任何内容 - 有人曾经打过这个吗?我该如何克服这一点?


答案 1

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

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


答案 2

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


推荐