使用 solr 进行索引时打开文件过多异常

azh*_*ati 2 java jboss solr

我正在使用 SOLR 为我的 Web 应用程序中的文档编制索引,并且 solr.war 部署在 jboss 服务器上。但是在索引时我收到太多文件打开异常。以下是一些异常堆栈跟踪:

12:31:33,267 ERROR [STDERR] Exception in thread "Lucene Merge Thread #0"
12:31:33,267 ERROR [STDERR] org.apache.lucene.index.MergePolicy$MergeException: java.io.FileNotFoundException: /data/jbossesb/bin/solr/data/index/_2rw.prx (Too many open files)
12:31:33,267 ERROR [STDERR] at org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:351)
12:31:33,267 ERROR [STDERR] at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:315)
12:31:33,267 ERROR [STDERR] Caused by: java.io.FileNotFoundException: /data/jbossesb/bin/solr/data/index/_2rw.prx (Too many open files)
12:31:33,267 ERROR [STDERR] at java.io.RandomAccessFile.open(Native Method)
Run Code Online (Sandbox Code Playgroud)

dog*_*ane 5

如本SOLR Jira 中所述,您可以尝试以下选项:

  • 使用以下方法增加您的 ulimit: ulimit -n 1000000
  • 设置useCompoundFile为 true insolrconfig.xml以使用 Lucene 的复合文件格式
  • 使用较低的值mergeFactor将导致更少的段,从而减少打开的文件。