Solr - java.net.SocketException:打开的文件太多

时间:2012-12-20 07:54:14

标签: java linux solr jboss solrj

我在我的项目中使用 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> - &gt;最佳价值&gt; 2和&lt; 10(=默认)?
  • 文件描述符:
    • e.g。 ulimit -n200000

什么是最佳解决方案?

1 个答案:

答案 0 :(得分:1)

这对我有用:

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

* soft nofile 65535
* hard nofile 65535

然后注销/登录或为用户打开新会话您使用。

运行服务器