Медленный запуск Solr с распаковкой сохраненных полей

У меня есть встроенный сервер Solr, который я использую в сочетании с Spring Data Solr. У меня около 600 тыс. документов, занимающих 3 ГБ. Во время запуска Solr требуется несколько минут, прежде чем можно будет выполнить первый запрос. С VisualVM я смог отследить узкое место, которое, кажется, загружает первый документ, где декомпрессия LZ4 занимает много времени при чтении с диска. Трассировка выглядит так:

searcherExecutor-5-thread-1
    java.lang.Thread.run()
     java.util.concurrent.ThreadPoolExecutor$Worker.run()
      java.util.concurrent.ThreadPoolExecutor.runWorker()
       java.util.concurrent.FutureTask.run()
        java.util.concurrent.FutureTask$Sync.innerRun()
         org.apache.solr.core.SolrCore$5.call()
          org.apache.solr.handler.component.SuggestComponent$SuggesterListener.newSearcher()
           org.apache.solr.spelling.suggest.SolrSuggester.reload()
            org.apache.solr.spelling.suggest.SolrSuggester.build()
             org.apache.lucene.search.suggest.Lookup.build()
              org.apache.lucene.search.suggest.analyzing.AnalyzingSuggester.build()
               org.apache.lucene.search.suggest.DocumentDictionary$DocumentInputIterator.next()
                org.apache.lucene.index.IndexReader.document()
                 org.apache.lucene.index.BaseCompositeReader.document()
                  org.apache.lucene.index.SegmentReader.document()
                   org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.visitDocument()
                    org.apache.lucene.codecs.compressing.CompressionMode$4.decompress()
                     org.apache.lucene.codecs.compressing.LZ4.decompress()
                      org.apache.lucene.store.BufferedIndexInput.readBytes()
                       org.apache.lucene.store.BufferedIndexInput.readBytes()
                        org.apache.lucene.store.BufferedIndexInput.refill()
                         org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexInput.readInternal()
                          java.io.RandomAccessFile.seek[native]()

Мне нужны сохраненные поля для сопоставления объектов. Я не понимаю, почему так много декомпрессии должно происходить при загрузке одного документа. Это похоже на то, что справочная таблица декомпрессии огромна. Любые советы/советы?

введите здесь описание изображения


person Kafkaesque    schedule 07.07.2014    source источник


Ответы (1)


Я отключил компонент Suggester и проверку орфографии, теперь они работают быстрее.

person Kafkaesque    schedule 07.07.2014