【问题标题】:Yourkit prolonging STW-pauses in minor GC-collections?Yourkit 在次要 GC 集合中延长 STW 暂停?
【发布时间】:2015-01-20 10:40:57
【问题描述】:

我们已经开始使用 Yourkit 版本 11 监控我们的应用程序。自从我们这样做以来,我们有时会观察到非常奇怪的行为。次要垃圾回收有时会导致 stop-the-world 暂停超过两分钟。

【问题讨论】:

  • 从那时起已经有了三个主要版本。如果是 YourKit 中的 bug,可能已经在 2014 版本中修复,建议您尝试一下。
  • 您能提供您的 GC 日志的 sn-p 吗?

标签: java garbage-collection profiling yourkit


【解决方案1】:

次要收集中的长时间 STW 暂停可能是由本机线程引起的,本机线程必须在实际收集开始之前达到安全点(例如这里提到的:Java GC safepoint 或这里:Long incidental Young garbage collection pauses)。

Yourkit 与分析器代理(一个 .so/.dll 文件)一起使用,使用了此类本地调用。实际执行这些调用的线程是从分析器中的线程视图中过滤出来的,并且看不到。这就是为什么 Yourkit 本身的堆栈跟踪视图无助于分析该问题的原因。

如果您停止在代理模式下使用 yourkit,问题就会消失。

编辑

根据 Peter Lawrey 的建议,我们下载了 yourkit 2014 的试用版。代理已经在生产环境中运行了两天,问题不再出现。

【讨论】:

  • 请提供有关导致 STW 暂停的 YourKit 线程的详细信息(此处或支持(at)yourkit.com)。最好的问候,Vladimir Kondratyev YourKit, LLC
猜你喜欢
  • 1970-01-01
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多