4

有没有人使用新的 Java 1.6 JDK 工具VisualVM来分析生产应用程序以及应用程序在分析时如何执行?

文档说它是为生产和开发使用而设计的,但是基于以前的分析经验,使用其他分析工具,我很犹豫。

4

8 回答 8

5

虽然我没有亲自使用过 VisualVM,但我今天看到了这篇文,可能对你有一些有用的信息。他谈到了使用它来分析生产应用程序。

于 2008-09-16T20:29:50.987 回答
1

仅仅为了监控你的应用程序,远程运行 VisualVM 应该不会减慢它的速度。如果系统没有处于崩溃的边缘,我仍然没有看到任何问题。它基本上只是从 JVM 的粗粒度内置工具中读取信息。但是,如果您开始分析,您将遇到与其他分析器相同的问题。基本上是因为它们几乎都以相同的方式工作,通常使用 JVM 中的支持。

由于防火墙问题,许多人在远程运行 VisualVM 时遇到问题,但您甚至可以通过 ssh 远程运行 Visual VM,并设置一些系统属性。

于 2009-10-08T20:46:08.427 回答
1

我在开发盒上尝试过,发现当我关闭分析时,它会意外关闭 Tomcat。对于将其推广到生产环境,我会非常谨慎-您可以在暂存环境中模拟负载吗?它不如真实的东西,但如果它出错了,它可能不会让你被解雇......

于 2008-09-30T14:39:07.120 回答
1

我以前使用 VisualVM 来分析本地运行的东西。一个巨大的胜利是我刚刚启动它,它可以连接到正在运行的 JVM。它比我以前使用过的其他分析工具更容易使用,而且似乎没有那么多开销。

我认为它可以采样。CPU 密集型应用程序的开销似乎并不显着。我没有测量任何东西(我对我的应用程序的性能感兴趣,而不是工具的性能如何),但它绝对没有我习惯于从分析中看到的 10 倍减速因素。

于 2009-10-07T20:51:32.373 回答
0

可以使用 VisualVM 从另一台计算机远程连接到您的服务器。您只需右键单击“远程”节点并说“添加远程主机”。

这至少可以消除 VisualVM 开销(如果有的话)在运行时影响性能。

这可能无法消除所有性能问题,尤其是在生产环境中,但它会有所帮助。

于 2008-10-01T13:47:11.230 回答
0

我使用了 Net Beans 分析器,它使用与 Visual VM 相同的基础。

我正在使用旧版本的 Weblogic,这意味着使用 1.5 JVM,所以我无法进行动态附加。我正在分析的应用程序有数千个类,而我的工作站几乎无法使用,而分析器对它们都进行了检测。仪器安装完成后,系统运行缓慢,但并非完全无法使用。减速量实际上取决于您需要捕获的内容。基本的 CPU 指标非常轻量级。分析内存分配会使事情变慢很多。

我不会在生产系统上使用它。除了可能会降低速度之外,我最终用完了 PermGen 空间,因为当您更改设置时,分析器会重新检测和重新加载类。(这个可能在1.6代理中修复了,不知道)

于 2009-10-07T21:13:23.190 回答
0

我已经非常广泛地使用了 VVM(VavaVoom?),在轻量模式下工作就像一个魅力,即没有分析,只是从 VM 获取基本数据。但是一旦你开始分析并且有很多类,那么就会出现相当大的减速。即使您有 128 个核心板和 2 兆内存,我也不会在生产环境中进行分析,纯粹因为类的重新加载和重新定义很棘手,服务器类加载器是另一回事,也因服务器实现而异,在生产中干扰它们并不是一个好主意。

于 2011-06-01T15:07:41.987 回答
0

自从 VisualVM 包含在 JDK 中之前,我就一直在使用它。它对系统性能的影响可以忽略不计。我从来没有注意到它会导致系统性能出现问题,但话又说回来,我们的 Java 服务器当时有足够的空间来支持一点额外的负载。如果您的服务器运行在一个完全被淘汰的水平并且无法处理 VisualVM 的运行,那么我会说您更有可能需要购买另一台服务器。任何生产服务器都应该有一些内存空间,否则你所拥有的只是等待发生的灾难。

于 2011-01-28T18:57:41.407 回答