Mark,

Nothing against orange-hat :)

Nothing against GC tuning; but if SOLR needs application-specific settings
it should be well-documented.

GC-tuning: for instance, we need it for 'realtime' Online Trading
applications. However, even Online Banking doesn't need; primary reason - GC
must happen 'outside of current transaction', GC 'must be predictable', and
(for instance) Oracle/BEA JRockit has specific 'realtime' version for
that... Does SOLR need that?


Having load-stress simulator (multithreaded!!!) will definitely help to
predict any possible bottleneck... it's even better to write it from scratch
(depends on schema!), by sending random requests to SOLR in-parallel...
instead of waiting when FieldCache tries to add new FieldImpl to cache
(unpredictable!)


Tomcat is multithreaded; what if end-users need to load 1000s large
documents (in parallel! 1000s concurrent users), can you predict memory
requirements and GC options without application-specific knowledge? What
about new SOLR-Caches warming up?


-Fuad


> -----Original Message-----
> From: Mark Miller [mailto:markrmil...@gmail.com]
> Sent: September-27-09 2:46 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Solr and Garbage Collection
> 
> If he needed double the RAM, he'd likely know by now :) The JVM likes to
> throw OOM exceptions when you need more RAM. Until it does - thats an
> odd path to focus on. There has been no indication he has ever seen an
> OOM with his over 10 GB heap.  It sounds like he has run Solr in his
> environment for quite a long time - after running for that long, until
> he gets an OOM, its about as good as chasing ghost to worry about it.
> 
> I like to think of GC tuning as orange-hat. Mostly because I like the
> color orange.
> 
> Fuad Efendi wrote:
> >>> Ok. After the server ran for more than 12 hours, the time spent on GC
> >>> decreased from 11% to 3,4%, but 5 hours later it crashed.
> >>>
> >
> > All this 'black-hat' GC tuning and 'fast' object moving (especially
objects
> > accessing by some thread during GC-defragmentation)
> >
> > - try to use multithreaded load-stress tools (at least 100 requests
> > in-parallel) and see that you need at least double memory if 12Gb is
> > threshold for your FieldCache (largest objects)
> >
> >
> > Also, don't trust this counters:
> >
> >> So I logged the Garbage Collection activity to check if it's because of
> >> that. It seems like 11% of the time the application runs, it is stopped
> >> because of GC.
> >>
> >
> >
> > Stopped? Of course, locking/unlocking in order to move objects currently
> > accessesd in multiuser-multithreaded Tomcat... you can easily create
crash
> > scenario proving that latest-greatest JVMs are buggy too.
> >
> >
> >
> > Don't forget: Tomcat is multithreaded, and if 'core' needs 10Gb in order
to
> > avoid OOM, you need to double it (in order to warm new cash instances on
> > index replica / update).
> >
> >
> > http://www.linkedin.com/in/liferay
> >
> >
> >
> 
> 
> --
> - Mark
> 
> http://www.lucidimagination.com
> 
> 



Reply via email to