2013-08-01 2 views
2

я сделал 2 перформансы тесты мер, скорость индексации с коллекцией 235280 документов:скорость Индексация выступления с и без Solrcloud

первый тест: 1 Solr например без SolrCloud: индексирование скорость = 6191 док/с

2-й тест: 4 Solr экземпляра (4) осколки связаны с SolrCloud: индексирование скорость = 4506 док/с

Я использую 8 ЦП.

Итак, у меня есть некоторые вопросы по поводу этих результатов:

Q1: Обычно, количество экземпляров SOLR Улучшилось ли или ухудшить скорость индексации?

Q2: Содержит ли SolrCloud скорость индексации?

Q3: Почему у меня снижается производительность при использовании SolrCloud? Я что-то пропустил (настройка?)?

Edit:

Я использую обработчик обновления CSV для индекса моей коллекции.

+0

сколько у вас осколков? как вы индексируете (Tika, Data Import, Custom)? – lexk

+0

В первом тесте я не использую SolrCloud (1 осколок). И во втором тесте у меня есть 4 осколка (по одному экземпляру). Я индексирую свою коллекцию с помощью обработчика обновления CSV. – Corentin

+0

Сколько серверов вы отправляете параллельно? Если это один - есть накладные расходы, чтобы отправить сообщение правильному лидеру осколков. Во всяком случае, я не думаю, что это может объяснить такую ​​деградацию. Вы делаете это на той же машине с четырьмя различными экземплярами? 4 ядра? Или разные машины? – lexk

ответ

0

Основываясь на проведенном мной тесте производительности, совместное использование нескольких узлов в облачной инфраструктуре Solr улучшило мою производительность индексирования. Репликация осколков в нескольких узлах для обработки отказов замедляла производительность индексации по очевидной причине. Также обратите внимание на массовое индексирование за выполнение отдельных обновлений.

Для получения дополнительной информации вы можете прочитать http://wiki.apache.org/lucene-java/ImproveIndexingSpeed.

0

В Solr имеется множество настроек, а также аппаратные спецификации, которые могут повлиять на производительность индексирования. Помимо очевидного решения бросить на него больше машин, настройка Solr - это скорее искусство, чем наука. Вот мой опыт, возьмите его с солью. Как правило, вы должны видеть производительность от 6 до 8 Кбит/с.

Аппаратные спецификации: 4 х 40 ядер (hyperthreaded) с 256 Гб оперативной памяти с SSD

Я также использовать updateCSV API для импорта документов.

Моя базовая матрица измеряется 1 из этих машин (1 осколок). Моя матрица SolrCloud измеряется всеми четырьмя из них (4 осколка с 1 копией на коллекцию).


Для большой коллекции (82 ГБ) я видел пропускную способность 3,68x.

Для средней коллекции (7 ГБ), 2.17x.

Для небольшой коллекции (1.29GB), 1.17x.


Так, чтобы ответить на ваш вопрос:

Q1: Как правило, чем больше Solr узлов у вас есть на скорость индексации увеличение сбора. Это может быть плато в какой-то момент, но, безусловно, показатели индексации не должны ухудшаться. Может быть, ваша коллекция слишком мала, чтобы оправдать горизонтальное масштабирование SolrCloud?

Q2: Нет, SolrCloud не должен ухудшать скорость индексирования.

Q3: Это действительно зависит от того, как вы его настроили. Я вижу прирост производительности только с настройками по умолчанию. Но вот что я натолкнулся на то, что получил повышение производительности еще больше:

  • Не устанавливайте commit=true в вашем API-интерфейсе updateCSV.
  • Вы можете использовать больше осколков на коллекцию, чем количество живых Solr-узлов, если использование системы низкое.
  • solr.hdfs.blockcache.slab.count должно составлять от 10 до 20% доступной системной памяти.
  • autoCommit обычно должно составлять 15 секунд.
Смежные вопросы