1

我在我的项目中使用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 和 < 10(= 默认值)?
  • 文件描述符:
    • 例如ulimit -n200000

什么是最好的解决方案?

4

1 回答 1

1

这对我有用:

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

* soft nofile 65535
* hard nofile 65535

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

于 2012-12-20T15:33:32.337 回答