Java PSYoungGen暂停抖动
我在java应用程序中观察到一些奇怪的行为。次要GC暂停时间非常稳定,介于2到4毫秒之间,间隔几秒钟(根据繁忙程度从大约4秒到几分钟不等)。我注意到,在第一次完全GC之前,较小的收集暂停时间可能会达到几百毫秒,有时会超过秒数。但是,在第一次完全收集之后,这些峰值消失,小的收集暂停时间不再峰值,并在2-4毫秒之间保持稳定。这些峰值似乎与永久堆使用率无关 我不知道如何诊断这个问题。很明显,整个集合中有些东西发生了变化,否则尖峰将继续发生。我正在寻找一些解决问题的方法 一些细节:Java PSYoungGen暂停抖动,java,garbage-collection,jvm,Java,Garbage Collection,Jvm,我在java应用程序中观察到一些奇怪的行为。次要GC暂停时间非常稳定,介于2到4毫秒之间,间隔几秒钟(根据繁忙程度从大约4秒到几分钟不等)。我注意到,在第一次完全GC之前,较小的收集暂停时间可能会达到几百毫秒,有时会超过秒数。但是,在第一次完全收集之后,这些峰值消失,小的收集暂停时间不再峰值,并在2-4毫秒之间保持稳定。这些峰值似乎与永久堆使用率无关 我不知道如何诊断这个问题。很明显,整个集合中有些东西发生了变化,否则尖峰将继续发生。我正在寻找一些解决问题的方法 一些细节: 我正在使用-ser
- 我正在使用-server标志。使用吞吐量并行收集器
- 堆大小为1.5G,在年轻一代和长期一代之间使用默认比率。幸存者口粮仍然默认。我不确定这些与本次调查有多大关系,因为尽管进行了更多的调整,仍显示出相同的行为
- 在启动时,我进行了几个DB调用。大部分信息都可以被GC删除(并且在收集完整信息后才会删除)。我的应用程序的某些实例将使用GC,而其他实例则不会
- 完全烫发?我认为并行收集器处理得很好,不需要更多的标志,这与CMS不同李>
- 启动后手动触发完整GC。我将尝试这样做,希望根据观察结果解决这个问题。然而,这只是一个暂时的解决办法,因为我仍然不明白为什么会有问题