Нужна помощь в устранении неполадок в Vagrant Hosted Solr Instance - PullRequest
0 голосов
/ 12 октября 2019

TL; DR

У меня есть бродячий размещенный индекс solr на компьютере с Windows 10, который дает сбой и перестает отвечать на запросы (сброс соединения одноранговым узлом) без каких-либо исключений в журналах solr. Как я могу начать отлаживать, что идет не так?

Вариант использования / проблема

Я пытаюсь проиндексировать постоянный поток данных учетной записи пользователя, который имеет многочисленные удаления и обновления по запросу. Обновление потока данных происходит каждые 4–5 секунд.

Кажется, все идет гладко, пока индекс solr не достигнет ~ 5,5 миллионов записей. Затем происходит сбой без ошибок или исключений в журналах Solr. Ошибка, которую получает клиент, является Сбросом соединения Пиром. Глядя на solr vm, экземпляры solr перестали работать.

Вот вывод ps -aux | grep sorl сразу после прекращения работы solr:

 solr      3048  0.0  0.0  16256  3612 ?        Ss   17:23   0:00/lib/systemd/systemd --user
 solr      3049  0.0  0.0 167420  3028 ?        S    17:23   0:00 (sd-pam)

Затем, через минуту или две,вышеперечисленные процессы исчезают, и больше не выполняются процессы solr.

При проверке журналов solr ошибок и исключений не обнаружено.

Подробности VM

Вот информация оэкземпляр vagrant (Vagrantfile).

config.vm.box = "ubuntu/disco64"

...

config.vm.provider "virtualbox" do |v|
    v.memory 4096 (4 gigs)
    v.cpus 4
end

Установлен самый последний openjdk-8-jdk.

Установлен Solr 8.20.

Служба solr установлена ​​в /vagrant / sorl, поэтому в теории должно быть достаточно места на диске. Экземпляр vagrant установлен на SSD-диске, на котором осталось 216 ГБ свободного места.

Solr Config

Я пытался следовать этому совету, Общие сведения о журналах транзакций, Soft Commit и Commit InSolrCloud для настройки моего индекса Solr. Я пытаюсь следовать стратегиям Heavy (массовая) индексации и Index-heavy, Query-light .

Единственные реальные значения, которые я изменил вПо умолчанию solrconfig.xml устанавливает для openSearcher значение true для autoCommit. Я внес это изменение, чтобы видеть индекс по мере его роста и запрашивать некоторые данные по мере сбора потока данных учетной записи пользователя.

<!-- AutoCommit

     Perform a hard commit automatically under certain conditions.
     Instead of enabling autoCommit, consider using "commitWithin"
     when adding documents.

     http://wiki.apache.org/solr/UpdateXmlMessages

     maxDocs - Maximum number of documents to add since the last
               commit before automatically triggering a new commit.

     maxTime - Maximum amount of time in ms that is allowed to pass
               since a document was added before automatically
               triggering a new commit.
     openSearcher - if false, the commit causes recent index changes
       to be flushed to stable storage, but does not cause a new
       searcher to be opened to make those changes visible.

     If the updateLog is enabled, then it's highly recommended to
     have some sort of hard autoCommit to limit the log size.
  -->
<autoCommit>
  <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
  <openSearcher>true</openSearcher>
</autoCommit>

Я увеличил память индекса solr до 2 гигабайт,Вот вывод ps -aux | grep java, когда работает solr.

java -server
     -Xms2056m
     -Xmx2056m
     -XX:+UseG1GC
     -XX:+PerfDisableSharedMem
     -XX:+ParallelRefProcEnabled
     -XX:MaxGCPauseMillis=250
     -XX:+UseLargePages
     -XX:+AlwaysPreTouch
     -verbose:gc
     -XX:+PrintHeapAtGC
     -XX:+PrintGCDetails
     -XX:+PrintGCDateStamps
     -XX:+PrintGCTimeStamps
     -XX:+PrintTenuringDistribution
     -XX:+PrintGCApplicationStoppedTime
     -Xloggc:/vagrant/solr//logs/solr_gc.log
     -XX:+UseGCLogFileRotation
     -XX:NumberOfGCLogFiles=9
     -XX:GCLogFileSize=20M
     -Dcom.sun.management.jmxremote
     -Dcom.sun.management.jmxremote.local.only=false
     -Dcom.sun.management.jmxremote.ssl=false
     -Dcom.sun.management.jmxremote.authenticate=false
     -Dcom.sun.management.jmxremote.port=18983
     -Dcom.sun.management.jmxremote.rmi.port=18983
     -Dsolr.log.dir=/vagrant/solr//logs
     -Djetty.port=8983
     -DSTOP.PORT=7983
     -DSTOP.KEY=solrrocks
     -Duser.timezone=UTC
     -Djetty.home=/opt/solr/server
     -Dsolr.solr.home=/vagrant/solr//data
     -Dsolr.data.home=
     -Dsolr.install.dir=/opt/solr
     -Dsolr.default.confdir=/opt/solr/server/solr/configsets/_default/conf -Dlog4j.configurationFile=file:/vagrant/solr//log4j2.xml
     -Xss256k
     -Dsolr.jetty.https.port=8983
     -Dsolr.log.muteconsole
     -XX:OnOutOfMemoryError=/opt/solr/bin/oom_solr.sh 8983 /vagrant/solr//logs
     -jar start.jar
     --module=http

Другая справочная информация

Я работал с solr раньше, но никогда с такими подробными или очень агрессивными даннымимаслобойки. Мой единственный настоящий профессиональный опыт - это добавить пару сотен тысяч записей в solr, а затем выполнить несколько простых запросов, удалить индекс и затем повторно собрать записи обратно в индекс ...

Plea

Любой дружеский совет или комментарии о том, как отладить эту проблему, будет принята с благодарностью. Я искал и искал, но не могу найти ничего, что удаленно выглядит как ответ на эту проблему.

...