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:
    • change index to a compound-index: <useCompoundFile>true</useCompoundFile>
    • уменьшить коэффициент слияния: <mergeFactor>2</mergeFactor> --> лучшее значение > 2 и ‹ 10 (= по умолчанию)?
  • File Descriptor:
    • e.g. ulimit -n200000

Какое лучшее решение?


person user1731299    schedule 20.12.2012    source источник
comment
Можете ли вы проверить вывод lsof, когда это произойдет?   -  person mindas    schedule 20.12.2012


Ответы (1)


Это работает для меня:

вставьте следующие строки в /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535

Затем выйдите из системы/войдите в систему или откройте новую сессию для пользователя, с которым вы запускаете сервер.

person sevage    schedule 20.12.2012