Hello, I have few questions regarding G1 RSets.
We are running java on a 30Gb machnie with Xmx=20Gb, howewer, java managed to use extra 7.5Gb above that 20Gb. According to NMT, the most significant sources of memory consumptions are: Java Heap (reserved=20971520KB, committed=20971520KB) (mmap: reserved=20971520KB, committed=20971520KB) GC (reserved=3021667KB, committed=3021667KB) (malloc=2210659KB #61926090) (mmap: reserved=811008KB, committed=811008KB) Internal (reserved=2358976KB, committed=2358976KB) (malloc=2358944KB #1205678) (mmap: reserved=32KB, committed=32KB) Assuming that most of the memory is claimed by G1, I've added an option to track what is RSet consumption stat is: Current rem set statistics Total per region rem sets sizes = 2803150K. Max = 2448K. 128K ( 0.0%) by 13 Young regions 76K ( 0.0%) by 7 Humonguous regions 8874K ( 0.3%) by 898 Free regions 2794071K ( 99.7%) by 1642 Old regions Static structures = 290K, free_lists = 11539K. 2878842478 occupied cards represented. 0 ( 0.0%) entries by 13 Young regions 47 ( 0.0%) entries by 7 Humonguous regions 0 ( 0.0%) entries by 898 Free regions 2878842431 (100.0%) entries by 1642 Old regions Region with largest rem set = 75:(O)[0x00000002e5800000,0x00000002e6000000,0x00000002e6000000], size = 2448K, occupied = 1687K. Total heap region code root sets sizes = 114K. Max = 29K. 0K ( 0.2%) by 13 Young regions 0K ( 0.1%) by 7 Humonguous regions 14K ( 12.2%) by 898 Free regions 100K ( 87.5%) by 1642 Old regions 3010 code roots represented. 0 ( 0.0%) elements by 13 Young regions 0 ( 0.0%) elements by 7 Humonguous regions 0 ( 0.0%) elements by 898 Free regions 3010 (100.0%) elements by 1642 Old regions Region with largest amount of code roots = 147:(O)[0x0000000309800000,0x000000030a000000,0x000000030a000000], size = 29K, num_elems = 1. , 0.6920868 secs] Looks like half of this 7Gb extra is cards and bitmaps for RSet. So my questions are: - Is there any information about internal implementation details available anywhere? - Is there a way to estimate what overhead would be and how this is related to app memory footprint? - In our app it's mostly strings and we are using strings deduplication, could it be the problem, since it creates extra references between regions, increasing footprint for RSet? Thanks, Stas
_______________________________________________ hotspot-gc-use mailing list hotspot-gc-use@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use