Apache Solr - Физическая память растет слишком быстро на dataimport

Я запускаю команду dataimport ночной (127.0.0.1:8983/solr/dataimport?command=full-import)

Через несколько дней я просматриваю панель управления solr и физическая память превышает 4 ГБ. Если я удалю индекс (удалить все файлы в каталоге данных), а затем запустите dataimport, физическая память снизится до 1.1 гб. Без его удаления физическая память растет очень быстро.

Нужны ли дополнительные параметры, такие как clean = true? Я хочу запустить задачу cron, которая по сути совпадает с удалением каталога данных, а затем запустить полный импорт, чтобы моя физическая память была как можно меньшей.

Я использую настройки кеша по умолчанию для solr 4.0.



1024









true

20
200



  
    <!--
       solrprice asc
       rocksweight asc
      -->
  


  
    
      static firstSearcher warming in solrconfig.xml
    
  


false

2


3
nl ja de
Для полного импорта clean = true используется значение по умолчанию. См. Здесь: wiki.apache.org/solr/DataImportHandler#Commands . Память может быть использована различными аспектами, а не только полным импортом. Можете ли вы проверить свои настройки кеша в файле solrconfig.xml и статистике кеша на 127.0.0.1:8983/solr/admin/stats.jsp?
добавлено автор arun, источник
Похоже, все ваши тайники, управляемые «Solr», прекрасны. Частая причина Solr, потребляющего слишком много памяти, связана с полемCache ( wiki.apache.org/solr/SolrCaching # The_Lucene_FieldCache ), которую вы не можете настроить. fieldCache заселяется при сортировке по полю. Если ваше приложение сортирует слишком много полей (особенно динамических полей), этот кеш может потреблять память. Установите флажок entries_count и insanity_count в поле fieldCache на странице статистики.
добавлено автор arun, источник
Когда вы говорите, что вы удаляете индекс, а затем запускаете импорт данных, перезагружаете ли вы причал (или любой другой контейнер, который вы используете) перед запуском команды импорта? Перезапуск контейнера приведет к удалению всех кешей, включая fieldCache, что может объяснить, почему Solr начинается с меньшей памяти. Но как только кэши будут заполнены, больше памяти будет потреблено.
добавлено автор arun, источник
Я не думаю, что вы можете просто удалить кеши без перезапуска причала. ПолеCache сохраняет одну запись в поле сортировки. Если вы запускаете много запросов, сортируя их по разным полям (особенно динамическим полям), они будут заполнены, и вы начнете получать исключения из памяти. Лучше всего переделать свою схему. Вы можете взглянуть на stackoverflow.com/questions/13393248/…
добавлено автор arun, источник
Я проверил статистику. Что я должен искать? Я очень смущен, почему нет встроенной функции, которая делает эквивалент удаления и повторного импорта каталога данных.
добавлено автор Stokes003, источник
Да, я перезапускаю Jetty. Должно быть, это так. Есть ли способ удалить кеши из cron?
добавлено автор Stokes003, источник