Обновить
Я настроил как xms (начальная память), так и xmx (параметры jvm максимального распределения памяти, после перезапуска я подключил Visual VM для мониторинга использования памяти Tomcat. Пока процесс индексирования выполняется, использование памяти Tomcat кажется нормальным , потребление памяти находится в диапазоне определенных параметров jvm. (см. изображение)
Таким образом, кажется, что буферы файловой системы занимают всю оставшуюся память и не сбрасывают память? Есть ли способ справиться с этим поведением, например, изменить размер nGram или directoryFactory?
Я новичок в Solr и Tomcat, но начнем:
ОС Windows Server 2008
- 4 ЦП
- 8 ГБ ОЗУ
Tomcat Service версии 7.0 (64-разрядная)
- Только запущенный Solr
- Не заданы дополнительные параметры JVM, но настраивается Solr через графический интерфейс
Solr версии 4.5.0.
- Один экземпляр Core (как для запросов, так и для индексации)
Конфигурация схемы:
- minGramSize = "2" maxGramSize = "20"
- большинство полей сохранено = "true" (обязательно)
Конфигурация Solr:
- ramBufferSizeMB: 100
- maxIndexingThreads: 8
- directoryFactory: MMapDirectory
- autocommit: maxdocs 10000, maxtime 15000, opensearcher false
- cache (по умолчанию):
filtercache initialsize: 512 size: 512 autowarm: 0
queryresultcache initialsize: 512 size: 512 autowarm: 0
documentcache initialsize: 512 size: 512 autowarm: 0
Мы используем .Net Service (на основе Solr.Net) для обновления и вставки документов в один экземпляр Solr Core. Размер документов, отправляемых в Solr, варьируется от 1 КБ до 8 МБ, мы отправляем документы пакетами, используя один или несколько потоков. Текущий размер индекса Solr составляет около 15 ГБ.
Служба индексации работает примерно 3-4 часа, чтобы завершить все вставки и обновления Solr. Пока выполняется процесс индексирования, использование памяти процессом Tomcat продолжает расти до> 7 ГБ ОЗУ и не уменьшается даже через 24 часа. После перезапуска Tomcat или перезагрузки ядра в Solr Admin объем памяти уменьшается до 1 на 2 ГБ. Утечка памяти?
Можно ли настроить максимальное использование памяти для процесса Solr на Tomcat? Есть ли другие альтернативы? Лучшие практики?
Спасибо