В 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 секунд.
сколько у вас осколков? как вы индексируете (Tika, Data Import, Custom)? – lexk
В первом тесте я не использую SolrCloud (1 осколок). И во втором тесте у меня есть 4 осколка (по одному экземпляру). Я индексирую свою коллекцию с помощью обработчика обновления CSV. – Corentin
Сколько серверов вы отправляете параллельно? Если это один - есть накладные расходы, чтобы отправить сообщение правильному лидеру осколков. Во всяком случае, я не думаю, что это может объяснить такую деградацию. Вы делаете это на той же машине с четырьмя различными экземплярами? 4 ядра? Или разные машины? – lexk