2012-12-20 48 views
1

我使用Solr的3.6.1在我的項目,從昨天起,我獲得以下錯誤,如果我嘗試更新索引:Solr的 - java.net.SocketException異常:打開的文件太多

Socket accept failed: java.net.SocketException: Too many open files 

org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: 
    [email protected]/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

什麼是最好的解決辦法嗎?

+0

發生這種情況時可以檢查'lsof'輸出嗎? – mindas

+0

什麼是'lsof'? – user1731299

+0

http://bit.ly/V8otRW – mindas

回答

1

這個工作對我來說:

插入以下行/etc/security/limits.conf文件

* soft nofile 65535 
* hard nofile 65535 

然後註銷/登錄或者用戶在運行與服務器上打開新的會話。

相關問題