Hi Shawn, I'm running facet queries with G1GC, and Solr is crashing with OOM, not triggering GC. All caches are disabled in solrconfig.xml.
Thanks, Bilal On Fri, 10 Nov, 2023, 21:32 Shawn Heisey, <apa...@elyograg.org.invalid> wrote: > On 11/10/2023 06:09, bilal qureshi wrote: > > I'm using solr cloud 9.1.1 on solr cloud cluster start initial heap it > > takes around 400 MB out of 12 GB. After some queries on solr heap > increases > > to 8 GB. And when I reload the collection it reduces to 7GB. > > using G1GC in this case. > > > > Running the same testcase with ZGC, it reduces heap to less than 1 GB. > > In order to have this be a valid comparison, you would have to trigger a > full GC, not just reload the collection. Solr itself will never > manually trigger any kind of GC, you would have to add a custom plugin > or compile a custom version of Solr. > > G1GC is going to concentrate on cleaning the new generation. In order > for garbage to be collected in the old gen, a full GC must occur. G1GC > tries to NOT do full GCs unless it absolutely has to. With 8GB out of > 12GB in use, there is plenty of free memory without the full GC, which > is why it does not do anything to the old gen. > > If allocated heap gets close enough to the max (12GB in your case), then > G1 will do a full GC. Which will be slow and will pause Solr until it's > done. On an 8GB heap, I have seen G1GC pause the application for up to > 15 seconds when doing a full GC. > > I know very little about how ZGC actually functions. I have done some > experiments with it ... gceasy.io analysis reveals that it does a lot > more total collections than G1, but each one is significantly faster > which means that an individual pause is very brief. From your results, > it appears that ZGC does clean both generations on its incremental runs. > > Thanks, > Shawn > >