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.
>
>
>
>
>
>

Reply via email to