Какой объем памяти должен быть выделен Java на Tomcat, используя Solr с 20+ M элементами в индексе? - PullRequest
1 голос
/ 19 августа 2011

Я ищу несколько советов по выделению памяти для Java на Tomcat 7, работающем Solr: -)

Вот факты:

  • Работает Solr 1.4.1 с приблизительно 20 миллионами элементов различных размеров в индексе.
  • Индекс при усечении составляет приблизительно 40-45 ГБ большой.
  • Приблизительно 40000-60000 статей добавляются в индекс каждый месяц .Статьи различаются по размеру, от пары КБ до 15-20 КБ.
  • Приблизительно 5000-8000 изображений добавляются в индекс каждый месяц .(На самом деле не сами изображения, а некоторые метаданные).

Особенности конфигурации Solr:

  • mergeFactor 10
  • ramBufferSizeMB 128 МБ
  • maxMergeMB 1024,0 МБ

При полной переиндексации (на сервере Win 2007 с процессором Intel Xeon (4 ядра) + 6 ГБ памяти) индексирование записей в дневнике занимает около 3,5 часов ииндексация изображений занимает около 4,5 часов.

Однако мы обновили индексный сервер до 12 ГБ памяти и назначили Java 6144 МБ для максимального пула памяти , Начальный пул памяти: 1024 МБ .

При перезапуске Apache Tomcat требуется приблизительно 5-10 минут для достижения ~ 5 ГБ использования памяти.Еще час или два, и он преодолевает барьер 6 ГБ и остается там.

Когда у нас был барьер 2 ГБ с использованием 32-разрядного Apache, мы получили OutOfMemoryError: Java Heap Space через 1-1,5 недели.3 ГБ добавляются, возможно, до 2-3 недель.

Сейчас мы запустили Solr на 64-битном Apache и Java с 6 ГБ, выделенными на пару дней.Пока проблем нет.

Учитывая вышеприведенные факты, что бы вы сделали, чтобы обрезать индекс Solr и настроить использование памяти?

1 Ответ

1 голос
/ 19 августа 2011

Насколько велик ваш индекс изображения? Рассматривали ли вы разделение двух индексов? Если вы поместите их в отдельные экземпляры SOLR на отдельных блоках, вы увидите увеличение производительности.

...