如何减少GC CPU使用率的峰值

时间:2015-11-03 11:55:36

标签: java performance garbage-collection jvm

我有一个内存密集型Java 8服务器应用程序,它也对延迟敏感。应用程序在2.5G堆运行良好,但每天只有garbage collector CPU使用量的峰值

现在我想知道如何减少尖峰。我可能无法减少内存使用量或增加更多内存。我对GC平均 CPU使用率感到满意。我想只是平均地分配 CPU负载。有可能吗?

1 个答案:

答案 0 :(得分:1)

首先,您应该确保它的CPU利用率会引入延迟,而不是停止世界停顿(例如,如果您正在使用CMS,则为Full GC)。

如果Full GC不是问题,那么您可以通过使用所有当前标志(当前标志可能影响其他标志的默认值)启动它来检查应用程序的有效VM标志,然后附加-XX:+PrintFlagsFinal

查找ConcGCThreads并查看减少该数字是否具有所需效果。它会为并发周期使用更少的内核(但更长的时间)。