We cannot avoid auto soft commit, since we need Lucene NRT feature. And I use StreamingUpdateSolrServer for adding/updating index.
On Thu, Apr 19, 2012 at 7:42 AM, Boon Low <boon....@brightsolid.com> wrote: > Hi, > > Also came across this error recently, while indexing with > 10 DIH > processes in parallel + default index setting. The JVM grinds to a halt and > throws this error. Checking the index of a core reveals thousands of files! > Tuning the default autocommit from 15000ms to 900000ms solved the problem > for us. (no 'autosoftcommit'). > > Boon > > ----- > Boon Low > Search UX and Engine Developer > brightsolid Online Publishing > > On 14 Apr 2012, at 17:40, Gopal Patwa wrote: > > > I checked it was "MMapDirectory.UNMAP_SUPPORTED=true" and below are my > > system data. Is their any existing test case to reproduce this issue? I > am > > trying understand how I can reproduce this issue with unit/integration > test > > > > I will try recent solr trunk build too, if it is some bug in solr or > > lucene keeping old searcher open then how to reproduce it? > > > > SYSTEM DATA > > =========== > > PROCESSOR: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz > > SYSTEM ID: x86_64 > > CURRENT CPU SPEED: 1600.000 MHz > > CPUS: 8 processor(s) > > MEMORY: 49449296 kB > > DISTRIBUTION: CentOS release 5.3 (Final) > > KERNEL NAME: 2.6.18-128.el5 > > UPTIME: up 71 days > > LOAD AVERAGE: 1.42, 1.45, 1.53 > > JBOSS Version: Implementation-Version: 4.2.2.GA (build: > > SVNTag=JBoss_4_2_2_GA date=20 > > JAVA Version: java version "1.6.0_24" > > > > > > On Thu, Apr 12, 2012 at 3:07 AM, Michael McCandless < > > luc...@mikemccandless.com> wrote: > > > >> Your largest index has 66 segments (690 files) ... biggish but not > >> insane. With 64K maps you should be able to have ~47 searchers open > >> on each core. > >> > >> Enabling compound file format (not the opposite!) will mean fewer maps > >> ... ie should improve this situation. > >> > >> I don't understand why Solr defaults to compound file off... that > >> seems dangerous. > >> > >> Really we need a Solr dev here... to answer "how long is a stale > >> searcher kept open". Is it somehow possible 46 old searchers are > >> being left open...? > >> > >> I don't see any other reason why you'd run out of maps. Hmm, unless > >> MMapDirectory didn't think it could safely invoke unmap in your JVM. > >> Which exact JVM are you using? If you can print the > >> MMapDirectory.UNMAP_SUPPORTED constant, we'd know for sure. > >> > >> Yes, switching away from MMapDir will sidestep the "too many maps" > >> issue, however, 1) MMapDir has better perf than NIOFSDir, and 2) if > >> there really is a leak here (Solr not closing the old searchers or a > >> Lucene bug or something...) then you'll eventually run out of file > >> descriptors (ie, same problem, different manifestation). > >> > >> Mike McCandless > >> > >> http://blog.mikemccandless.com > >> > >> 2012/4/11 Gopal Patwa <gopalpa...@gmail.com>: > >>> > >>> I have not change the mergefactor, it was 10. Compound index file is > >> disable > >>> in my config but I read from below post, that some one had similar > issue > >> and > >>> it was resolved by switching from compound index file format to > >> non-compound > >>> index file. > >>> > >>> and some folks resolved by "changing lucene code to disable > >> MMapDirectory." > >>> Is this best practice to do, if so is this can be done in > configuration? > >>> > >>> > >> > http://lucene.472066.n3.nabble.com/MMapDirectory-failed-to-map-a-23G-compound-index-segment-td3317208.html > >>> > >>> I have index document of core1 = 5 million, core2=8million and > >>> core3=3million and all index are hosted in single Solr instance > >>> > >>> I am going to use Solr for our site StubHub.com, see attached "ls -l" > >> list > >>> of index files for all core > >>> > >>> SolrConfig.xml: > >>> > >>> > >>> <indexDefaults> > >>> <useCompoundFile>false</useCompoundFile> > >>> <mergeFactor>10</mergeFactor> > >>> <maxMergeDocs>2147483647</maxMergeDocs> > >>> <maxFieldLength>10000</maxFieldLength--> > >>> <ramBufferSizeMB>4096</ramBufferSizeMB> > >>> <maxThreadStates>10</maxThreadStates> > >>> <writeLockTimeout>1000</writeLockTimeout> > >>> <commitLockTimeout>10000</commitLockTimeout> > >>> <lockType>single</lockType> > >>> > >>> <mergePolicy > class="org.apache.lucene.index.TieredMergePolicy"> > >>> <double name="forceMergeDeletesPctAllowed">0.0</double> > >>> <double name="reclaimDeletesWeight">10.0</double> > >>> </mergePolicy> > >>> > >>> <deletionPolicy class="solr.SolrDeletionPolicy"> > >>> <str name="keepOptimizedOnly">false</str> > >>> <str name="maxCommitsToKeep">0</str> > >>> </deletionPolicy> > >>> > >>> </indexDefaults> > >>> > >>> > >>> <updateHandler class="solr.DirectUpdateHandler2"> > >>> <maxPendingDeletes>1000</maxPendingDeletes> > >>> <autoCommit> > >>> <maxTime>900000</maxTime> > >>> <openSearcher>false</openSearcher> > >>> </autoCommit> > >>> <autoSoftCommit> > >>> > >> <maxTime>${inventory.solr.softcommit.duration:1000}</maxTime> > >>> </autoSoftCommit> > >>> > >>> </updateHandler> > >>> > >>> > >>> Forwarded conversation > >>> Subject: Large Index and OutOfMemoryError: Map failed > >>> ------------------------ > >>> > >>> From: Gopal Patwa <gopalpa...@gmail.com> > >>> Date: Fri, Mar 30, 2012 at 10:26 PM > >>> To: solr-user@lucene.apache.org > >>> > >>> > >>> I need help!! > >>> > >>> > >>> > >>> > >>> > >>> I am using Solr 4.0 nightly build with NRT and I often get this error > >> during > >>> auto commit "java.lang.OutOfMemoryError: Map failed". I have search > this > >>> forum and what I found it is related to OS ulimit setting, please se > >> below > >>> my ulimit settings. I am not sure what ulimit setting I should have? > and > >> we > >>> also get "java.net.SocketException: Too many open files" NOT sure how > >> many > >>> open file we need to set? > >>> > >>> > >>> I have 3 core with index size : core1 - 70GB, Core2 - 50GB and Core3 - > >> 15GB, > >>> with Single shard > >>> > >>> > >>> We update the index every 5 seconds, soft commit every 1 second and > hard > >>> commit every 15 minutes > >>> > >>> > >>> Environment: Jboss 4.2, JDK 1.6 , CentOS, JVM Heap Size = 24GB > >>> > >>> > >>> ulimit: > >>> > >>> core file size (blocks, -c) 0 > >>> data seg size (kbytes, -d) unlimited > >>> scheduling priority (-e) 0 > >>> file size (blocks, -f) unlimited > >>> pending signals (-i) 401408 > >>> max locked memory (kbytes, -l) 1024 > >>> max memory size (kbytes, -m) unlimited > >>> open files (-n) 1024 > >>> pipe size (512 bytes, -p) 8 > >>> POSIX message queues (bytes, -q) 819200 > >>> real-time priority (-r) 0 > >>> stack size (kbytes, -s) 10240 > >>> cpu time (seconds, -t) unlimited > >>> max user processes (-u) 401408 > >>> virtual memory (kbytes, -v) unlimited > >>> file locks (-x) unlimited > >>> > >>> > >>> > >>> ERROR: > >>> > >>> > >>> > >>> > >>> > >>> 2012-03-29 15:14:08,560 [] priority=ERROR app_name= > >> thread=pool-3-thread-1 > >>> location=CommitTracker line=93 auto commit > error...:java.io.IOException: > >> Map > >>> failed > >>> at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748) > >>> at > >>> > >> > org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:293) > >>> at > >> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:221) > >>> at > >>> > >> > org.apache.lucene.codecs.lucene40.Lucene40PostingsReader.<init>(Lucene40PostingsReader.java:58) > >>> at > >>> > >> > org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat.fieldsProducer(Lucene40PostingsFormat.java:80) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.visitOneFormat(PerFieldPostingsFormat.java:189) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.<init>(PerFieldPostingsFormat.java:280) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.<init>(PerFieldPostingsFormat.java:186) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.<init>(PerFieldPostingsFormat.java:186) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer(PerFieldPostingsFormat.java:256) > >>> at > >>> > >> > org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:108) > >>> at > >> org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:51) > >>> at > >>> > >> > org.apache.lucene.index.IndexWriter$ReadersAndLiveDocs.getReader(IndexWriter.java:494) > >>> at > >>> > >> > org.apache.lucene.index.BufferedDeletesStream.applyDeletes(BufferedDeletesStream.java:214) > >>> at > >>> > >> > org.apache.lucene.index.IndexWriter.applyAllDeletes(IndexWriter.java:2939) > >>> at > >>> > >> > org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:2930) > >>> at > >> org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:2681) > >>> at > >>> > org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2804) > >>> at > >> org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2786) > >>> at > >>> > >> > org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:391) > >>> at > org.apache.solr.update.CommitTracker.run(CommitTracker.java:197) > >>> at > >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >>> at > >>> > >>> ... > >>> > >>> [Message clipped] > >>> ---------- > >>> From: Michael McCandless <luc...@mikemccandless.com> > >>> Date: Sat, Mar 31, 2012 at 3:15 AM > >>> To: solr-user@lucene.apache.org > >>> > >>> > >>> It's the virtual memory limit that matters; yours says unlimited below > >>> (good!), but, are you certain that's really the limit your Solr > >>> process runs with? > >>> > >>> On Linux, there is also a per-process map count: > >>> > >>> cat /proc/sys/vm/max_map_count > >>> > >>> I think it typically defaults to 65,536 but you should check on your > >>> env. If a process tries to map more than this many regions, you'll > >>> hit that exception. > >>> > >>> I think you can: > >>> > >>> cat /proc/<pid>/maps | wc > >>> > >>> to see how many maps your Solr process currently has... if that is > >>> anywhere near the limit then it could be the cause. > >>> > >>> Mike McCandless > >>> > >>> http://blog.mikemccandless.com > >>> > >>> On Sat, Mar 31, 2012 at 1:26 AM, Gopal Patwa <gopalpa...@gmail.com> > >> wrote: > >>>> *I need help!!* > >>>> > >>>> * > >>>> * > >>>> > >>>> *I am using Solr 4.0 nightly build with NRT and I often get this error > >>>> during auto commit "**java.lang.OutOfMemoryError:* *Map* *failed". I > >>>> have search this forum and what I found it is related to OS ulimit > >>>> setting, please se below my ulimit settings. I am not sure what ulimit > >>>> setting I should have? and we also get "**java.net.SocketException:* > >>>> *Too* *many* *open* *files" NOT sure how many open file we need to > >>>> set?* > >>>> > >>>> > >>>> I have 3 core with index size : core1 - 70GB, Core2 - 50GB and Core3 - > >>>> 15GB, with Single shard > >>>> > >>>> * > >>>> * > >>>> > >>>> *We update the index every 5 seconds, soft commit every 1 second and > >>>> hard commit every 15 minutes* > >>>> > >>>> * > >>>> * > >>>> > >>>> *Environment: Jboss 4.2, JDK 1.6 , CentOS, JVM Heap Size = 24GB* > >>>> > >>>> * > >>>> * > >>>> > >>>> ulimit: > >>>> > >>>> core file size (blocks, -c) 0 > >>>> data seg size (kbytes, -d) unlimited > >>>> scheduling priority (-e) 0 > >>>> file size (blocks, -f) unlimited > >>>> pending signals (-i) 401408 > >>>> max locked memory (kbytes, -l) 1024 > >>>> max memory size (kbytes, -m) unlimited > >>>> open files (-n) 1024 > >>>> pipe size (512 bytes, -p) 8 > >>>> POSIX message queues (bytes, -q) 819200 > >>>> real-time priority (-r) 0 > >>>> stack size (kbytes, -s) 10240 > >>>> cpu time (seconds, -t) unlimited > >>>> max user processes (-u) 401408 > >>>> virtual memory (kbytes, -v) unlimited > >>>> file locks (-x) unlimited > >>>> > >>>> > >>>> * > >>>> * > >>>> > >>>> *ERROR:* > >>>> > >>>> * > >>>> * > >>>> > >>>> *2012-03-29* *15:14:08*,*560* [] *priority=ERROR* *app_name=* > >>>> *thread=pool-3-thread-1* *location=CommitTracker* *line=93* *auto* > >>>> *commit* *error...:java.io.IOException:* *Map* *failed* > >>>> *at* > *sun.nio.ch.FileChannelImpl.map*(*FileChannelImpl.java:748*) > >>>> *at* > >>>> > >> > *org.apache.lucene.store.MMapDirectory$MMapIndexInput.*<*init*>(*MMapDirectory.java:293*) > >>>> *at* > >>>> > >> > *org.apache.lucene.store.MMapDirectory.openInput*(*MMapDirectory.java:221*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.lucene40.Lucene40PostingsReader.*<*init*>(*Lucene40PostingsReader.java:58*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat.fieldsProducer*(*Lucene40PostingsFormat.java:80*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.visitOneFormat*(*PerFieldPostingsFormat.java:189*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.*<*init*>(*PerFieldPostingsFormat.java:280*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.*<*init*>(*PerFieldPostingsFormat.java:186*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.*<*init*>(*PerFieldPostingsFormat.java:186*) > >>>> *at* > >>>> > >> > *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer*(*PerFieldPostingsFormat.java:256*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.SegmentCoreReaders.*<*init*>(*SegmentCoreReaders.java:108*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.SegmentReader.*<*init*>(*SegmentReader.java:51*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.IndexWriter$ReadersAndLiveDocs.getReader*(*IndexWriter.java:494*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.BufferedDeletesStream.applyDeletes*(*BufferedDeletesStream.java:214*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.IndexWriter.applyAllDeletes*(*IndexWriter.java:2939*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.IndexWriter.maybeApplyDeletes*(*IndexWriter.java:2930*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.IndexWriter.prepareCommit*(*IndexWriter.java:2681*) > >>>> *at* > >>>> > >> > *org.apache.lucene.index.IndexWriter.commitInternal*(*IndexWriter.java:2804*) > >>>> *at* > >>>> *org.apache.lucene.index.IndexWriter.commit*(*IndexWriter.java:2786*) > >>>> *at* > >>>> > >> > *org.apache.solr.update.DirectUpdateHandler2.commit*(*DirectUpdateHandler2.java:391*) > >>>> *at* > >>>> *org.apache.solr.update.CommitTracker.run*(*CommitTracker.java:197*) > >>>> *at* > >>>> > >> > *java.util.concurrent.Executors$RunnableAdapter.call*(*Executors.java:441*) > >>>> *at* > >>>> *java.util.concurrent.FutureTask$Sync.innerRun*(*FutureTask.java:303*) > >>>> *at* > *java.util.concurrent.FutureTask.run*(*FutureTask.java:138*) > >>>> *at* > >>>> > >> > *java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301*(*ScheduledThreadPoolExecutor.java:98*) > >>>> *at* > >>>> > >> > *java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run*(*ScheduledThreadPoolExecutor.java:206*) > >>>> *at* > >>>> > >> > *java.util.concurrent.ThreadPoolExecutor$Worker.runTask*(*ThreadPoolExecutor.java:886*) > >>>> *at* > >>>> > >> > *java.util.concurrent.ThreadPoolExecutor$Worker.run*(*ThreadPoolExecutor.java:908*) > >>>> *at* *java.lang.Thread.run*(*Thread.java:662*)*Caused* *by:* > >>>> *java.lang.OutOfMemoryError:* *Map* *failed* > >>>> *at* *sun.nio.ch.FileChannelImpl.map0*(*Native* *Method*) > >>>> *at* > *sun.nio.ch.FileChannelImpl.map*(*FileChannelImpl.java:745*) > >>>> *...* *28* *more* > >>>> > >>>> * > >>>> * > >>>> > >>>> * > >>>> * > >>>> > >>>> * > >>>> > >>>> > >>>> SolrConfig.xml: > >>>> > >>>> > >>>> <indexDefaults> > >>>> <useCompoundFile>false</useCompoundFile> > >>>> <mergeFactor>10</mergeFactor> > >>>> <maxMergeDocs>2147483647</maxMergeDocs> > >>>> <maxFieldLength>10000</maxFieldLength--> > >>>> <ramBufferSizeMB>4096</ramBufferSizeMB> > >>>> <maxThreadStates>10</maxThreadStates> > >>>> <writeLockTimeout>1000</writeLockTimeout> > >>>> <commitLockTimeout>10000</commitLockTimeout> > >>>> <lockType>single</lockType> > >>>> > >>>> <mergePolicy > >> class="org.apache.lucene.index.TieredMergePolicy"> > >>>> <double name="forceMergeDeletesPctAllowed">0.0</double> > >>>> <double name="reclaimDeletesWeight">10.0</double> > >>>> </mergePolicy> > >>>> > >>>> <deletionPolicy class="solr.SolrDeletionPolicy"> > >>>> <str name="keepOptimizedOnly">false</str> > >>>> <str name="maxCommitsToKeep">0</str> > >>>> </deletionPolicy> > >>>> > >>>> </indexDefaults> > >>>> > >>>> > >>>> <updateHandler class="solr.DirectUpdateHandler2"> > >>>> <maxPendingDeletes>1000</maxPendingDeletes> > >>>> <autoCommit> > >>>> <maxTime>900000</maxTime> > >>>> <openSearcher>false</openSearcher> > >>>> </autoCommit> > >>>> <autoSoftCommit> > >>>> > >>>> <maxTime>${inventory.solr.softcommit.duration:1000}</maxTime> > >>>> </autoSoftCommit> > >>>> > >>>> </updateHandler> > >>>> > >>>> > >>>> > >>>> Thanks > >>>> Gopal Patwa > >>>> * > >>> > >>> ---------- > >>> From: Gopal Patwa <gopalpa...@gmail.com> > >>> Date: Tue, Apr 10, 2012 at 8:35 PM > >>> To: solr-user@lucene.apache.org > >>> > >>> > >>> Michael, Thanks for response > >>> > >>> it was 65K as you mention the default value for "cat > >>> /proc/sys/vm/max_map_count" . How we determine what value this should > be? > >>> is it number of document during hard commit in my case it is 15 > >> minutes? or > >>> it is number of index file or number of documents we have in all > cores. > >>> > >>> I have raised the number to 140K but I still get when it reaches to > >> 140K, we > >>> have to restart jboss server to free up the map count, sometime OOM > error > >>> happen during "Error opening new searcher" > >>> > >>> is making this number to unlimited is only solution?'' > >>> > >>> > >>> Error log: > >>> > >>> location=CommitTracker line=93 auto commit > >>> error...:org.apache.solr.common.SolrException: Error opening new > searcher > >>> at > >> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1138) > >>> at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1251) > >>> at > >>> > >> > org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:409) > >>> at > org.apache.solr.update.CommitTracker.run(CommitTracker.java:197) > >>> at > >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >>> at > >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >>> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >>> at > >>> > >> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > >>> at > >>> > >> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > >>> at > >>> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >>> at > >>> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >>> at java.lang.Thread.run(Thread.java:662) > >>> Caused by: java.io.IOException: Map failed > >>> at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748) > >>> at > >>> > >> > org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:293) > >>> at > >> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:221) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.<init>(PerFieldPostingsFormat.java:262) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$1.<init>(PerFieldPostingsFormat.java:316) > >>> at > >>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.files(PerFieldPostingsFormat.java:316) > >>> at org.apache.lucene.codecs.Codec.files(Codec.java:56) > >>> at org.apache.lucene.index.SegmentInfo.files(SegmentInfo.java:423) > >>> at > >> org.apache.lucene.index.SegmentInfo.sizeInBytes(SegmentInfo.java:215) > >>> at > >>> > >> > org.apache.lucene.index.IndexWriter.prepareFlushedSegment(IndexWriter.java:2220) > >>> at > >>> > >> > org.apache.lucene.index.DocumentsWriter.publishFlushedSegment(DocumentsWriter.java:497) > >>> at > >>> > >> > org.apache.lucene.index.DocumentsWriter.finishFlush(DocumentsWriter.java:477) > >>> at > >>> > >> > org.apache.lucene.index.DocumentsWriterFlushQueue$SegmentFlushTicket.publish(DocumentsWriterFlushQueue.java:201) > >>> at > >>> > >> > org.apache.lucene.index.DocumentsWriterFlushQueue.innerPurge(DocumentsWriterFlushQueue.java:119) > >>> at > >>> > >> > org.apache.lucene.index.DocumentsWriterFlushQueue.tryPurge(DocumentsWriterFlushQueue.java:148) > >>> at org.apache.lucene.index. > >>> > >>> ... > >>> > >>> [Message clipped] > >>> ---------- > >>> From: Michael McCandless <luc...@mikemccandless.com> > >>> Date: Wed, Apr 11, 2012 at 2:20 AM > >>> To: solr-user@lucene.apache.org > >>> > >>> > >>> Hi, > >>> > >>> 65K is already a very large number and should have been sufficient... > >>> > >>> However: have you increased the merge factor? Doing so increases the > >>> open files (maps) required. > >>> > >>> Have you disabled compound file format? (Hmmm: I think Solr does so > >>> by default... which is dangerous). Maybe try enabling compound file > >>> format? > >>> > >>> Can you "ls -l" your index dir and post the results? > >>> > >>> It's also possible Solr isn't closing the old searchers quickly enough > >>> ... I don't know the details on when Solr closes old searchers... > >>> > >>> Mike McCandless > >>> > >>> http://blog.mikemccandless.com > >>> > >>> > >>> > >>> On Tue, Apr 10, 2012 at 11:35 PM, Gopal Patwa <gopalpa...@gmail.com> > >> wrote: > >>>> Michael, Thanks for response > >>>> > >>>> it was 65K as you mention the default value for "cat > >>>> /proc/sys/vm/max_map_count" . How we determine what value this should > >> be? > >>>> is it number of document during hard commit in my case it is 15 > >> minutes? > >>>> or it is number of index file or number of documents we have in all > >>>> cores. > >>>> > >>>> I have raised the number to 140K but I still get when it reaches to > >> 140K, > >>>> we have to restart jboss server to free up the map count, sometime OOM > >>>> error happen during "*Error opening new searcher"* > >>>> > >>>> is making this number to unlimited is only solution?'' > >>>> > >>>> > >>>> Error log: > >>>> > >>>> *location=CommitTracker line=93 auto commit > >>>> error...:org.apache.solr.common.SolrException: Error opening new > >>>> searcher > >>>> at > >>>> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1138) > >>>> at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1251) > >>>> at > >>>> > >> > org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:409) > >>>> at > >> org.apache.solr.update.CommitTracker.run(CommitTracker.java:197) > >>>> at > >>>> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) > >>>> at > >>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >>>> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >>>> at > >>>> > >> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) > >>>> at > >>>> > >> > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) > >>>> at > >>>> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >>>> at > >>>> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >>>> at java.lang.Thread.run(Thread.java:662)Caused by: > >>>> java.io.IOException: Map failed > >>>> at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748) > >>>> at > >>>> > >> > org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:293) > >>>> at > >>>> > org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:221) > >>>> at > >>>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.<init>(PerFieldPostingsFormat.java:262) > >>>> at > >>>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$1.<init>(PerFieldPostingsFormat.java:316) > >>>> at > >>>> > >> > org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.files(PerFieldPostingsFormat.java:316) > >>>> at org.apache.lucene.codecs.Codec.files(Codec.java:56) > >>>> at > >> org.apache.lucene.index.SegmentInfo.files(SegmentInfo.java:423) > >>>> at > >>>> org.apache.lucene.index.SegmentInfo.sizeInBytes(SegmentInfo.java:215) > >>>> at > >>>> > >> > org.apache.lucene.index.IndexWriter.prepareFlushedSegment(IndexWriter.java:2220) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriter.publishFlushedSegment(DocumentsWriter.java:497) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriter.finishFlush(DocumentsWriter.java:477) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriterFlushQueue$SegmentFlushTicket.publish(DocumentsWriterFlushQueue.java:201) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriterFlushQueue.innerPurge(DocumentsWriterFlushQueue.java:119) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriterFlushQueue.tryPurge(DocumentsWriterFlushQueue.java:148) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriter.doFlush(DocumentsWriter.java:438) > >>>> at > >>>> > >> > org.apache.lucene.index.DocumentsWriter.flushAllThreads(DocumentsWriter.java:553) > >>>> at > >>>> org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:354) > >>>> at > >>>> > >> > org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:258) > >>>> at > >>>> > >> > org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:243) > >>>> at > >>>> > >> > org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:250) > >>>> at > >>>> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1091) > >>>> ... 11 moreCaused by: java.lang.OutOfMemoryError: Map failed > >>>> at sun.nio.ch.FileChannelImpl.map0(Native Method) > >>>> at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:745)* > >>>> > >>>> > >>>> > >>>> And one more issue we came across i.e > >>> > >>> > >> > > > > > > ______________________________________________________________________ > > This email has been scanned by the brightsolid Email Security System. > Powered by MessageLabs > > ______________________________________________________________________ > > > ______________________________________________________________________ > "brightsolid" is used in this email to collectively mean brightsolid > online innovation limited and its subsidiary companies brightsolid online > publishing limited and brightsolid online technology limited. > findmypast.co.uk is a brand of brightsolid online publishing limited. > brightsolid online innovation limited, Gateway House, Luna Place, Dundee > Technology Park, Dundee DD2 1TP. Registered in Scotland No. SC274983. > brightsolid online publishing limited, The Glebe, 6 Chapel Place, > Rivington Street, London EC2A 3DQ. Registered in England No. 04369607. > brightsolid online technology limited, Gateway House, Luna Place, Dundee > Technology Park, Dundee DD2 1TP. Registered in Scotland No. SC161678. > > Email Disclaimer > > This message is confidential and may contain privileged information. You > should not disclose its contents to any other person. If you are not the > intended recipient, please notify the sender named above immediately. It is > expressly declared that this e-mail does not constitute nor form part of a > contract or unilateral obligation. Opinions, conclusions and other > information in this message that do not relate to the official business of > brightsolid shall be understood as neither given nor endorsed by it. > ______________________________________________________________________ > This email has been scanned by the brightsolid Email Security System. > Powered by MessageLabs > ______________________________________________________________________ >