Java 1.6 JDK工具,VisualVM

时间:2008-09-16 19:31:30

标签: java profiling

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

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

8 个答案:

答案 0 :(得分:5)

虽然我没有亲自使用VisualVM,但我今天才看到这个blog post可能会为您提供一些有用的信息。他谈到使用它来分析生产应用程序。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

我认为它确实是抽样的。 CPU密集型应用程序的开销似乎并不重要。我没有测量任何东西(我对我的应用程序的执行方式感兴趣,而不是工具的执行方式),但它确实没有让我从惯常分析中看到的10减速因素。

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

这至少会消除VisualVM开销(如果有的话),因为它在运行时会影响性能。

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

答案 5 :(得分:0)

我使用的Net Beans Profiler使用与Visual VM相同的基础。

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

我不会在生产系统上使用它。除了可能减速之外,我最终耗尽了PermGen空间,因为当您更改设置时,探查器会重新测试并重新加载类。 (这可以在1.6代理中修复,我不知道)

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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