我们已经开始使用Yourkit版本11监视我们的应用程序。由于我们这样做,我们有时会观察到非常奇怪的行为。轻微的垃圾收集有时会造成世界各地停顿超过两分钟。
答案 0 :(得分:0)
次要集合中的长STW暂停可能是由本机线程引起的,必须在实际集合开始之前达到安全点(例如:Java GC safepoint或此处:Long incidental Young garbage collection pauses)。
与探查器代理(.so / .dll文件)一起使用的Yourkit使用此类本机调用。实际执行这些调用的线程将从概要分析器中的线程视图中过滤掉,并且无法看到。这就是为什么Yourkit本身的堆栈跟踪视图无助于分析该问题。
如果您停止在代理模式下使用您的套件,问题就会消失。
修改
根据Peter Lawrey的建议,我们已经下载了yourkit 2014的试用版。该代理已经在生产中运行了两天,问题不再发生了。