RFR: 8319548: Unexpected internal name for Filler array klass causes error in VisualVM

Thomas Schatzl thomas.schatzl at oracle.com
Fri May 3 07:12:08 UTC 2024


On 30.04.24 03:38, jjscl8888 wrote:
 >  Thank you for your clarification. if the instance in question had no
 > traffic but you observed a sudden increase in the old generation size
 > at 2:35 in the graph, and subsequent garbage collections (GCs) did not
 > reduce the size of the old generation back to its original value

Collectors are fairly reluctant to give back memory to the OS.

For G1 in particular, there are the options `MinHeapFreeRatio` and 
`MaxHeapFreeRatio` which to some degree steer commit and uncommit.

* `MinHeapFreeRatio` is "The minimum percentage of heap free after GC to 
avoid expansion", i.e. minimum amount of memory should be kept free. 
Default is 40%, i.e. expands if less than that amount of memory is free.

* `MaxHeapFreeRatio` is "The maximum percentage of heap free after GC to 
avoid shrinking", i.e. maximum amount of memory that should be kept 
free. Default is 70%; i.e. only shrinks the heap if more than 70% of 
memory is free.

Not sure the latter condition is met here to shrink, and without logs 
(`-Xlog:gc+ergo+heap=debug`) this is just a guess. Also, this kind of 
heap resizing (including shrinking) only occurs in the Remark pause.

So to decrease the heap more aggressively, it might work to decrease 
`MaxHeapFreeRatio` (and probably `MinHeapFreeRatio` because for such 
large heaps the default values are maybe not optimal).

Hth,
   Thomas


More information about the hotspot-dev mailing list