Как настроить адаптивное изменение размера старой области в Java GC?

Для настройки Java 6 (1.6.0_23) GC я использую -XX: + UseParallelOldGC вместе с

-XX:+PrintTenuringDistribution
-XX:+UseAdaptiveSizePolicy
-XX:+UseAdaptiveGCBoundary

Моя цель - позволить GC вычислить оптимальное соотношение между старыми и новыми регионами. Однако visualgc (jvmstat 3.0) показывает, что, хотя соотношение между eden и выжившими изменяется в соответствии с моей рабочей нагрузкой, старая область остается (отчаянно) в своем первоначальном размере, фиксированном newRatio (2 в моем случае).

Что не так с моими настройками или ожиданиями?

На моем экране после 19 коллекций visualgc постоянно показывает старый Gen ниже 500 м. в то время как зарезервированные и зафиксированные размеры старого поколения равны 624 м. Я установил NewSize на 30m и MaxNewSize на 300m, но это ничего не меняет: NewRatio кажется нематериальным ... PrintAdaptiveSizePolicy говорит только о выжившем.

Дело в том, что меню "зарезервированное пространство" visualgc ничего не показывает для пространства старого поколения ... Я также пробовал использовать -XX: + UseAdaptiveGCBoundary без изменений.

Вот несколько логов -XX: + PrintTenuringDistribution -XX: + PrintGCDetails

Есть полный gc и последняя распечатка кучи ... Кажется, что устаревший дистрибутив тоже искажен ...

Desired survivor size 119275520 bytes, new threshold 1 (max 15)
[PSYoungGen: 182096K->66576K(233024K)] 681978K->631994K(932096K), 0.2582390 secs] [Times: user=0.29 sys=0.00, real=0.26 secs]
116.431: [GC
Desired survivor size 119275520 bytes, new threshold 1 (max 15)
[PSYoungGen: 183120K->39952K(233024K)] 748538K->670910K(932096K), 0.1578620 secs] [Times: user=0.29 sys=0.00, real=0.16 secs]
116.589: [Full GC [PSYoungGen: 39952K->0K(233024K)] [ParOldGen: 630958K->310429K(699072K)] 670910K->310429K(932096K) [PSPermGen: 21973K->21973K(30592K)], 1.3326720 secs] [Times: user=1.79 sys=0.01, real=1.33 secs]
118.050: [GC
Desired survivor size 119275520 bytes, new threshold 1 (max 15)
[PSYoungGen: 116544K->18448K(233024K)] 426973K->328877K(932096K), 0.0745320 secs] [Times: user=0.14 sys=0.00, real=0.08 secs]
118.234: [GC
Desired survivor size 119275520 bytes, new threshold 1 (max 15)
[PSYoungGen: 134992K->24592K(233024K)] 445421K->351409K(932096K), 0.1290960 secs] [Times: user=0.14 sys=0.00, real=0.13 secs]
118.526: [GC
Desired survivor size 114884608 bytes, new threshold 1 (max 15)
[PSYoungGen: 141136K->36880K(237312K)] 467953K->380085K(936384K), 0.1187320 secs] [Times: user=0.21 sys=0.00, real=0.12 secs]
118.759: [GC
Desired survivor size 108593152 bytes, new threshold 1 (max 15)
[PSYoungGen: 142446K->40976K(233024K)] 485652K->416957K(932096K), 0.1153230 secs] [Times: user=0.23 sys=0.00, real=0.12 secs]
Heap
PSYoungGen total 233024K, used 97957K (0xb3a40000, 0x9e4f0000, 0x9e4f0000]
eden space 120832K, 47% used [0x9e4f0000,0xa1c95668,0xa5af0000)
from space 112192K, 36% used [0xa5af0000,0xa82f4020,0xac880000)
to space 106048K, 0% used [0xad2b0000,0xad2b0000,0xb3a40000)
ParOldGen total 699072K, used 375981K [0x73a40000, 0x9e4f0000, 0x9e4f0000)
object space 699072K, 53% used [0x73a40000,0x8a96b730,0x9e4f0000)
PSPermGen total 30592K, used 21981K [0x6fa40000, 0x71820000, 0x73a40000)
object space 30592K, 71% used [0x6fa40000,0x70fb7668,0x71820000)
8
задан Bill the Lizard 29 March 2011 в 12:38
поделиться