4

我们正在尝试使用 VisualVM 来追踪 CF8 中的一些内存泄漏,但是无法让该工具 100% 工作。基本上,一切都出现了,除了内存采样。说“不支持JVM”。

但是,所有其他功能都可以工作(我们可以进行 CPU 采样,但不能进行内存采样)。发现这种奇怪的是我们可以做除了内存之外的所有其他事情,所以想知道我们是否需要指定另一个 JVM 参数来允许这样做?

其他一些信息:

  1. 我们通过 127.0.0.1 或 localhost 在本地连接。
  2. 我安装了 Visual GC 插件,它也无法连接。
  3. VisualVM 和 JRUN/CF8 都使用相同的 Java 版本 (1.6.0_31),但是,它们不是从同一位置提取的(也许这很重要)。VisualVM 使用已安装的 JDK,而 JURN/CF8 仅使用我们在本地复制到 CF8 安装文件夹的二进制文件。
  4. 安装了另一个显示 JVM 属性的插件,它说 JVM 不是“可附加的”。不知道这意味着什么,但我只是想提一下。

对此的任何帮助将不胜感激。如果我们能够获得内存采样,我认为我们可以解决最近困扰我们的性能问题。提前致谢!

编辑:

另外,刚刚检查了一下,JRUN 正在“管理员”下启动,而我正在另一个用户下启动 VisualVM。也许这是相关的?

4

1 回答 1

3

是的,您在不同的用户下运行 VisualVM 是相关的。Memory Sampling 使用Attach API,它仅在您以同一用户身份运行受监控的应用程序和 VisualVM 时才有效。这也是 JVM 属性报告您的应用程序不可附加的原因。如果您以“管理员”身份运行 VisualVM,它将自动检测您的 Coldfusion 8 应用程序并且内存采样器将工作。

于 2012-04-20T10:06:43.110 回答