【问题标题】:Java Mission Control 7.1 shows too few method profiling samplesJava Mission Control 7.1 显示的方法分析示例太少
【发布时间】:2019-03-20 14:53:37
【问题描述】:

here 提出了类似的问题。

我正在使用我根据instructions 构建的 JMC 7.1.0 分析 Open JDK 11.0.2 应用程序。

应用程序使用了大约 3 个内核,没有过多的 gc,只有一小部分时间线程在执行实际使用 CPU 的本机方法调用。

我使用的是 10 毫秒的默认方法采样间隔。 我使用以下方法启用了在安全点之外调试元数据:

-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints

采集的样本数量比我预期的要少得多。 保守地假设在每个采样点有 1 个运行非本机代码的 cpu 线程,我预计每秒 100 个样本。然而我只看到 1 个样本/秒。

机器本身通常空闲50%,所以采样线程不会被饿死。

是什么导致样本数量如此之低?

【问题讨论】:

    标签: jfr java-mission-control


    【解决方案1】:

    这可能是由于 JDK 11 中引入的错误导致的,该错误出现在具有多线程的应用程序中。它已在 JDK 12 中修复并向后移植到 11.0.3。

    详情见:

    https://bugs.openjdk.java.net/browse/JDK-8215727

    关于采样间隔。默认速率为 20 毫秒,但这并不意味着会有 50 个样本/秒。这是 JVM 尝试对一个或多个线程进行采样的时间间隔。

    【讨论】:

      猜你喜欢
      • 2016-04-27
      • 1970-01-01
      • 2015-01-25
      • 2018-11-20
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多