有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java VisualVM在生产中?

我考虑运行一个生产JVM的运行VisualVM,看看那里发生了什么,由于某种原因,它消耗了太多的CPU。p>

它一定不会导致JVM失败,所以我试图估计所有的风险

我在他们的site上看到的唯一可能导致JVM崩溃的问题是类共享和-XshareJVM选项,但是在服务器模式和/或x64系统上没有启用afaik类共享

这样,运行VisualVM对生产JVM是否真的安全,如果它不是-什么是一个人应该考虑的风险,以及多少负载(CPU /内存)运行VisualVM反对JVM(和它的剖析)?p>

谢谢


共 (2) 个答案

  1. # 1 楼答案

    AFAIK VisualVM可以在生产环境中使用,但我只会在负载较轻的服务器上使用它。你可以做的是等待服务的速度变慢,然后在它没有被使用的时候测试它,看看是否有一些集合是惊人的大。也可以触发堆转储并脱机分析

    而且,如果没有显著的开销,就无法获得方法调用的统计信息。Java6和Java7比Java5好,但即使使用商业分析器,它仍然会使应用程序的速度降低30%

  2. # 2 楼答案

    事实上,通过使用堆栈转储,您可以在没有大量开销的情况下获得一些信息。甚至有一个脚本可以帮助您在https://gist.github.com/851961执行此操作

    这种类型的分析是您所能得到的干扰最小的分析