Настройка производительности индексирования
Индексирование выполняетор (задача archive.search.index) —ся отдельныой шзаг конвдачейера: иarchive.search.index. Импортёр сохраняет письмо и устанавливает time_archived, после чего индексатор выбирает записьмаи с time_indexed=0 и отправляет их в Solr. Если индексатор не успеобрабатывает зписьма медленнее, чем они постоком имупораюта, backlogочередь растёт —и новые письма появляются в поиске с задержкой.
Параметры настройки
| Параметр | Где задаётся | ||
|---|---|---|---|
KLVD_INDEXER_WORKERS |
4 |
/update/. Каждый поток иkeep- (!) |
|
index_batch_size |
config.settings, |
100 |
SELECT /update в Solr. 1000 |
SOLR_HEAP |
4096m |
размер памяти JVM |
|
autoSoftCommit |
SOLR_OPTS |
10с |
|
ramBufferSizeMB |
solrconfig.xml, klvd- |
512 |
|
mergeFactor |
solrconfig.xml, klvd- |
25 |
Рекомендации по числу vCPU
| vCPU | KLVD_INDEXER_WORKERS |
SOLR_HEAP |
Приме |
|---|---|---|---|
| 4 | 2 | 2048m |
|
| 8 | 4 | 4096m |
|
| 16+ | 8 | 8192m |
KLVD_INDEXER_WORKERSне должен превышатькочисличествоvCPUvCPU.— кКаждыйworker срабоздаётчий поток,квыпоторый деланяет HTTP-запросы к Solr ипсотребляездаётCPUнагрузку как насторонеузелыКлавдия, так и насторонеSolr.
trade-offВыбор autoSoftCommit
autoSoftCommit-
Меньше1–3(1-3с)с — новые документы быстрее появляются в поискебыстрее, ноsearcherSolrreopen кчаждыще1-3спереоткрывает поисковый индекс и сильнее нагружаетCPU Solr.CPU. Подходит дляинтерактивнбольшого поиска с малым потокома импорта, когда важна минимальная задержка поиска. -
Больше10–15(10-15с)с —мснижает ньше CPUагрузку наreopen,CPU и повышаетthroughputпропускную способность индексировацнии.я,Дно новые документы могут появляються в поиске с задержкой до15с15 секунд. Подходит для массового импорта(бенчмарк,и начальнаяой загрузкаи архива). Приcrashаварийном завершении Solr—документы, находившиеся вupdateLog, восстанавливаются п(не закоммиченные)росле запуска. Записи старте Solr.time_indexed=0вPGPostgreSQLгостаются в очерантедири буедут переоиндексировациюны повторно, если часто-тоьпотерялось. Дданныех нетпопала в индеряюткся.
Когда увеличивать SOLR_HEAP
SOLR_HEAPРассмотрите увеличение SOLR_HEAP, если выполняются следующие условия:
Backlogочередь индексироваторания растёт,ноаKLVD_INDEXER_WORKERSуже=соответствуетvCPUчислу→ Solr CPU-bound.vCPU;Вв журналогахе Solr частыо фиксируется слияние сегментов и текущего объёма памяти недостаточно для;mergedramBufferSizeMB- колонка [JVM Heap] (
merge storm) → heap(!) в [Инстансы SolrCloud] или/solr/admin/info/systemпоказывает устойчивую нехватку памяти и длитетльныенпаузыramBufferSizeMB.сборки мусора.
curl http://<solr>:8983/solr/admin/cores?action=STATUSmemoryЕслизко к SOLR_HEAP → увеличение памятьи heap(!) илиневозможно, уменьшитье ramBufferSizeMB.ramBufferSizeMB
reindex(!)-allи повторно оцените производительность.
Применение изменений solrconfig.xml ко всему индексу
[Сбросить поиск] удаляет поисковый индекс. Перед сбросом проверьте доступность исходных данных архива и согласуйте период недоступности полнотекстового поиска. Для одного изменения solrconfig.xml
solrconfig.xml ко всему индексу[Сбросить поиск] удаляет поисковый индекс. Перед сбросом проверьте доступность исходных данных архива и согласуйте период недоступности полнотекстового поиска. Для одного изменения solrconfig.xml
SOLR_HEAP сброс и переиндексация не требуются.
Изменениея mergeFactor/ и ramBufferSizeMB применяеются только к новым сегментам. Существующий индекс не переформируется автоматически не перестраивается.
Чтобы применить новыения параметры ко всему индексу:
- Изменит
ьеsolrconfig.xml,и пересобераитье образklvd-solr. - В разделе [Поиск (Solr)] выполните [Сбросить поиск
(раздел[Поиск (Solr)]→ «Сбросить поиск»). ЗаВыпустолнитье«[Реиндексировать ВСЁ»].
После переиндексации пвсер сегменты будут создастсяны с новой конфигурацией.
Связанные материалы
- {{ССЫЛКА:maintenance.solr-tuning|Solr: эксплуатационная настройка}} — память JVM и гра
метрницами.31 ГБ