有一天,我的申请被卡住了~5 min
。我相信这是因为ParNew
GC。我没有GC日志,但内部工具显示当时ParNew
消耗~35% CPU
。现在我想知道将来如何防止这种情况。
应用程序以JDK 1.8
和2.5G
堆运行。 GC选项为XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode
。
我know我可以使用XX:MaxGCPauseMillis
和XX:GCTimeRatio
。您还建议阻止ParNew
停止申请几分钟?
答案 0 :(得分:1)
GC已优化为不占用您的CPU时间,被卡住5分钟远离正常,要么您释放了数百万个对象,要么最有可能分配了几乎(如果不是全部)您的堆空间,迫使GC检索每个它能找到的一块记忆。我也会检查内存泄漏。