我在项目中正在使用 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
然后注销/登录或打开使用服务器的用户的新会话。