Yourkit 在次要 GC 收集中延长 STW 暂停?

Yourkit prolonging STW-pauses in minor GC-collections?

我们已经开始使用 Yourkit 版本 11 监控我们的应用程序。从那以后,我们有时会观察到非常奇怪的行为。次要垃圾收集有时会导致世界停止暂停超过两分钟。

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

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

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

编辑

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