Обновление сервера БД - SOLR DIH работает медленнее

Мы модернизируем наш сервер базы данных, и у меня возникает странная проблема с производительностью.

Наш старый сервер представляет собой двухпроцессорную систему с 8-ядерным и 4 ГБ оперативной памяти, работающую под управлением Win2k3 R2 Standard (32-разрядная версия), MS SQL Server 2005 и SOLR 4.2, работающей на Tomcat 7.0.37, все на Java 6u22. Мы используем драйвер MS SQL JDBC 3.0 для запуска DIH для импорта наших записей в solr. Этот процесс импорта занимает около 4,5 часов.

Наш новый сервер представляет собой двухпроцессорную систему с 16-ядерным и 32 ГБ оперативной памяти, работающую под управлением Win2k12 Standard (64-разрядная версия), MS SQL Server 2008 R2 и SOLR 4.2, работающую на Tomcat 7.0.39, все на Java 7u17. Я использовал тот же драйвер MS SQL JDBC 3.0 для запуска DIH. Процесс импорта занял более 8 часов.

В настоящее время я выполняю тест импорта с использованием драйвера MSSQL JDBC 4.0, но если статус соответствует тому, что я вижу сейчас, это также займет 7-8 часов.

Может ли кто-нибудь помочь мне разобраться в этой аномалии производительности и помочь мне исправить ее? В идеале я бы ожидал, что процесс импорта сократится (у сервера больше ресурсов, поэтому он должен), но я бы согласился получить ту же скорость.

Благодарю.

1 ответ

Решение

Я нашел главное замедление процесса импорта. Это был один, может быть, два из 10 дочерних объектов и их соответствующие запросы. Из 10 эти 2 также были единственными, которые не использовали CachedSqlEntityProcessor. Хотя, когда я пытался переделать, чтобы разрешить кэширование, у меня не хватало памяти. Эти запросы те же, что использовались старым сервером - поэтому я не уверен, почему он действительно замедлился на новом сервере.

Я решил переделать весь процесс. Я полагал, что получал бы лучшие результаты от импорта предварительно обработанных файлов, а не от индивидуального выполнения подзапросов. Поэтому я создал хранимую процедуру для использования bcp для экспорта всего, что мне нужно, в виде XML-файла в формате, готовом для импорта, с включенной функцией useSolrAddSchema.

Экспорт bcp занимает около 20 минут, при этом dih использует FileDataSource еще 5.

Так что, в конце концов, я доволен ростом производительности. Они начали с 10+ часов на Solr 1.3 на нашем старом сервере, с обновлением до Sol 4.2 я смог сократить его до 4,5 часов, а теперь с новым сервером он сократился примерно до 25 минут. Я бы назвал это победой сейчас.

Другие вопросы по тегам