Как быстрее индексировать записи в Solr (и не влиять на веб-сервер ColdFusion)? Два JVM? - PullRequest
1 голос
/ 13 октября 2010

У меня 64-битный сервер, 8 ГБ оперативной памяти, двухъядерный процессор.Никакие ресурсы никогда не достигают 100% (кроме, как мне кажется, JVM - верно?).

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

Стоит ли мне посвятить второй экземпляр JVM, посвященный Solr?

Прямо сейчас, когда я запускаю индекс, страницы, которыеобычно обслуживается за 200 миллисекунд и будет работать примерно за 1,5 секунды, а иногда и больше ... даже ужасная ошибка "Служба недоступна".

Я настроил свою кучу JVM следующим образом:

-Xmx1024m
-XX:MaxPermSize256m

В случае, если я гонюсь за неправильным решением, позвольте мне немного расширить ландшафт.Кажется, я не могу повлиять на скорость индексации Solr.Ранее я индексировал около 150 000 записей в час на виртуальном сервере на рабочей станции.В производственной среде с гораздо большим количеством доступного оборудования я выполняю индексирование с той же скоростью.

Без данных, чтобы доказать это, я думаю, что мои настройки JVM не ускорили индексирование, хотя, возможно, это позволилоCF-сервер для продолжения обслуживания страниц.Должен сказать, что скорость индексации очень низкая, но я знаю, что это не функция уровня доступа к данным.Я переписал его с чистого ORM на объекты, поддерживаемые хранимыми процедурами SQL, полагая, что это замедление (без эффекта).

Ответы [ 2 ]

3 голосов
/ 19 октября 2010

используйте отдельный экземпляр для индексации индекса, единственная хитрость - заставить запущенный экземпляр поиска перечитать обновленный индекс, и в этом случае вы устанавливаете master (индексатор) и slave (искатель) и делаете репликация. это приведет к тому, что поисковик не будет прерван, а индексатор будет использовать свою собственную JVM, включая собственную долю ресурсов.

1 голос
...