问题: 优先级高于此特定任务的任务占用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
答案 0 :(得分:5)
不,但你也不想要。问题在于,即使您使用的是CMS,也有一些部分需要阻止这个世界,这可能会导致您的超时。
更好的解决方案是对应用程序进行内存配置,以便减少垃圾。这将根据尺寸和频率缩短GC时间。如果您可以将GC减少到每天不到一次,则不会再出现此问题。