По умолчанию, наша jvm использует ForkJoinPool , тот в свою очередь использует все процессорное ядра доступные на конкретной машине. А оно нам надо ? Ведь кроме сборщика мусора есть и другие потоки требующие отдельных процессорных ядер например, вдруг есть какой-нибудь «слушатель» сокета или файловой системы . Соответственно количество процессорных ядер надо бы ограничить для ForkJoinPool, и сделать это можно использовав системное свойство : Java.util.concurrent.ForkJoinPool.common.parallelism. Менять данное свойство можно как программно так и используя конфигурационные файлы для JVM.