solr语言 - java.net.socketException:太多的打开文件



我在项目中正在使用 solr 3.6.1 ,自昨天以后,如果我尝试更新索引,我会出现以下错误:

Socket accept failed: java.net.SocketException: Too many open files
org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: 
  NativeFSLock@/opt/jboss-as-7.1.1.Final/domain/servers/server-one/lib/apache-solr-3.6.1-
 /example/solr/./data/index/write.lock

我已经发现以下"解决方案"以避免这些错误(?):

  • solrconfig.xml:
    • 将索引更改为复合索引:<useCompoundFile>true</useCompoundFile>
    • 降低合并因子:<mergeFactor>2</mergeFactor>->最佳值> 2和&lt;10(=默认)?
  • 文件描述符:
    • 例如。ulimit -n200000

最好的解决方案是什么?

这对我有用:

插入以下行到/etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

然后注销/登录或打开使用服务器的用户的新会话。

最新更新