I’m really interested to follow the ZGC engine and understand how well it works for geode. The -XX:SoftMaxHeapSize option in JDK 13 (just released) *might* be the key for us.
Anthony > On Sep 16, 2019, at 1:31 AM, Alberto Bustamante Reyes > <alberto.bustamante.re...@est.tech> wrote: > > Thanks for the answer and the links Anthony, the discussion is interesting. > > I think the differences between using CMS and G1 should be documented, I will > to contribute in this topic. For example, we have found these comments in a > GemFire support ticket > (https://community.pivotal.io/s/question/0D50e00005q9JT0CAM/please-refer-to-the-pivotal-ticket-210727): > > "First, we are not completely compatible with G1GC yet in GemFire, meaning > that some features, percentages, etc., in GemFire need to be rethought out if > changing from CMS to G1. For example, if using eviction or critical > thresholds, with CMS, these percentages would be a % of "Tenured" heap size. > For G1GC, they would be a % of "Total" heap size, because as you may realize, > G1GC doesn't have a max Eden space or max Tenured space." > > > ________________________________ > De: Anthony Baker <aba...@pivotal.io> > Enviado: miércoles, 11 de septiembre de 2019 18:58 > Para: dev@geode.apache.org <dev@geode.apache.org> > Asunto: Re: resource manager requirements & recommendations > > The challenge with designing a good approach for managing heap use in Java is > that we *can’t* know how much of the current heap use is really garbage. > That means that it can be really easy to evict too much or too little data. > > With the CMS engine there are tuning parameters like occupancy fraction that > you can set to match the eviction threshold. This leads to a fairly > predictable approach to managing heap memory. With G!GC, the challenge is > harder since the entire heap might fill up with garbage before any > collections occur. > > Despite CMS being deprecated, I think it’s currently the best choice to > control heap use in Geode. As noted in JEP 291 [1] and subsequent discussion > [2]: "For some applications CMS is a very good fit and might always > outperform G1”. I also think we need to do more work in this area to make G1 > perform as well as CMS. > > Anthony > > [1] http://openjdk.java.net/jeps/291 > [2] > http://mail.openjdk.java.net/pipermail/jdk9-dev/2017-April/thread.html#start > >> On Sep 11, 2019, at 9:14 AM, Alberto Bustamante Reyes >> <alberto.bustamante.re...@est.tech> wrote: >> >> Hi all, >> >> Im interested on using the resource manager with G1 garbage collector. To >> check if it is possible, I have been reading documentation about heap memory >> management and I came up with some questions because there are some points >> in the documentation where it is not clear for me if they are describing >> requirements or recommendations. >> >> As far as I understood, the requirements for using the Resource Manager are >> only two: >> >> * set the critical heap percentage >> * configure your GC properly in order to work before the eviction >> procedure starts. >> >> Am I right? There are three points in the documentation that makes me >> question if I'm correct: >> >> >> 1. The first chapter in >> https://geode.apache.org/docs/guide/19/managing/heap_use/heap_management.html >> states how to configure your GC for improving performance, but it only >> talks about CMS, there is no info about other GCs. >> 2. In the steps of how to configure ResourceManager, when talking about >> tuning GC parameters, it talks again only about CMS. >> 3. In the documentation of ResourceManager class, setCriticalHeapPercentage >> method, it is stated the following: >> >> Many virtual machine implementations have additional VM switches to control >> the behavior of the garbage collector. We suggest that you investigate >> tuning the garbage collector when using this type of eviction controller. A >> collector that frequently collects is needed to keep our heap usage up to >> date. In particular, on the Sun HotSpot VM, the -XX:+UseConcMarkSweepGC flag >> needs to be set, [...] >> >> So it seems that CMS is a requirement, but I have not found in the code any >> limitation about using only CMS. >> >> If my previous statement about the requirements is fine, then I suppose the >> documentation needs a review to distinguish between generic requirements and >> the CMS specific use case. >> >> Other question that come to my mind is about the lack of info about G1. As >> CMS is deprecated since Java 9, are there any plans to test and document G1 >> configuration? >> >> Thanks in advance for your comments! >> >> Alberto B. >> >> >> >> >> >> >