Почему время сборки мусора неуклонно увеличивается при длительном выполнении большого объема Java-приложения?

У меня есть приложение 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, время сборки мусора будет увеличиваться гораздо быстрее. Есть у кого-нибудь мысли по этой проблеме?

8
задан JoseK 9 September 2010 в 09:00
поделиться