У меня есть приложение Java большого объема, которое обрабатывает постоянную нагрузку 50000 мс / сек. Он настроен на высокую пропускную способность с использованием следующих параметров:
-Xmx3g -Xms3g -XX: NewSize = 2g -Xss128k -XX: SurvivorRatio = 6 -XX: TargetSurvivorRatio = 90 -XX: + UseParallelGC -XX: ParallelGCThreads = 12 - XX: + UseParallelOldGC -XX: + HeapDumpOnOutOfMemoryError
Я обнаружил, что время молодого GC постоянно увеличивается с 50 мс, когда оно начинается, до 200 мс к концу дня, хотя частота запусков GC остается той же.
Если я попробую выполнить тот же прогон с использованием сборщика ParNewGC, время сборки мусора будет увеличиваться гораздо быстрее. Есть у кого-нибудь мысли по этой проблеме?