On 3/30/2017 7:36 AM, moscovig wrote:
> We are using solr 6.2.1 for server and solrj 6.2.0, with no explicit commits, 
> and -
>
> <maxDocs>30000</maxDocs> 
> <maxTime>300000</maxTime> 
> for autoCommit.
>
> Each request to solr contains 300 small documents with different keys., with 
> a commitWithin of 300 ms.

I think the commitWithin is likely the problem here.  As long as you are
indexing, it will *try* to do a commit more than three times *every
second*.  Chances are that each commit is going to take longer than
300ms to complete, so the actual commit rate is probably lower, but
effectively this means that as long as you're indexing, Solr is
*constantly* doing commits that open a new Searcher.  This kind of
commit causes a large amount of disk I/O and CPU activity.  You do not
want to have an interval that low.  I would suggest a value for
commitWithin that's one or two minutes.

Your autoCommit doesn't appear to set openSearcher to false.  I
recommend doing that, setting its maxTime to 60 seconds, and removing
maxDocs.

I would also add autoSoftCommit with a three minute (180000) maxTime. 
It sounds like every request includes commitWithin ... the
autoSoftCommit would just be there to catch anything that somehow didn't
include the commitWithin.  Very likely it would never be triggered as
long as commitWithin is being used.  You could choose to lower that time
to two minutes and not use CommitWithin at all.

Thanks,
Shawn

Reply via email to