1

This is followup question to G1 Collector not doing full GC

Removed -XX:MaxGCPauseMillis=100 -XX:InitiatingHeapOccupancyPercent=80

Default for IHOP is 45%

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

0 96M 0 96M 3.4G 704M 6.5G 5.5G 640M 451.2M 6739 44.4m 0 0m 44.4m

Old generation is reaching 5.5G in size still full GC is not happening. Any idea why?

Thanks, Sameer

Community
  • 1
  • 1
Sameer Naik
  • 1,326
  • 1
  • 13
  • 28
  • enable GC logging, post a log – the8472 Aug 04 '16 at 13:00
  • $1 = gc_2016-08-05.log. `echo "Application time line count" grep -ac "Application time" $1 727,240 echo "stopped line count" grep -ac "were stopped" $1 727,241 echo "Total lines" wc -l $1 1,479,213 egrep -av 'Application time|were stopped' $1 > other_lines.txt` – Sameer Naik Aug 06 '16 at 21:57
  • https://gist.github.com/sameergn/0935a0f50a62eb7f350975d8d2dacd40 https://gist.github.com/sameergn/ba0bd3c1a2eec5cd1e7266c710f9de95 – Sameer Naik Aug 06 '16 at 22:06
  • @the8472 gc log mostly contains "Application time" and "were stopped" lines. Hence copied remaining lines to other_lines.txt. – Sameer Naik Aug 07 '16 at 04:03

1 Answers1

1

G1 seems to be working as it should. The average pause times of 763 young collections was 163ms, well within the 200ms default pause goal.

The longest pause was 373ms, of which 279.2ms were spent on reference processing. -XX:+ParallelRefProcEnabled should help here.

Default for IHOP is 45%

When none is set that's the initial IHOP, but it gets dynamically adjusted at runtime to meet other GC goals.

the8472
  • 40,999
  • 5
  • 70
  • 122
  • No Full GC is a good thing, but it is resulting in too much young collection times. If we invoke a full GC manually then you can see that eden gets more space as old space goes down from 4.5G to 2.4G. https://gist.github.com/sameergn/18f4c9197701261f338bfb1eafa328a8 With 1.6, we had 5G for Eden and 5G for old, and old generation objects used to starve for space, now it is opposite. – Sameer Naik Aug 07 '16 at 22:28