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