有没有办法只在JVM中将GC限制为某个%的CPU?

时间:2012-04-11 05:26:37

标签: java garbage-collection jvm

问题: 优先级高于此特定任务的任务占用CPU时间并导致一些超时问题。我们在GC完整周期期间经常看到这个问题。那么,有没有办法只在JVM中将GC限制在CPU的某个%?

使用的JVM参数:

wrapper.java.additional.3 = -XX:+ UseConcMarkSweepGC

wrapper.java.additional.4 = -XX:+ ExplicitGCInvokesConcurrent

将wrapper.java.additional.5 = -XX:+ CMSIncrementalMode

wrapper.java.additional.6 = -XX:CMSIncrementalDutyCycle = 50

wrapper.java.additional.7 = -XX:CMSIncrementalDutyCycleMin = 50

1 个答案:

答案 0 :(得分:5)

不,但你也不想要。问题在于,即使您使用的是CMS,也有一些部分需要阻止这个世界,这可能会导致您的超时。

更好的解决方案是对应用程序进行内存配置,以便减少垃圾。这将根据尺寸和频率缩短GC时间。如果您可以将GC减少到每天不到一次,则不会再出现此问题。