Настройка производительности индексирования
ИЕсли письма поступают быстрее, чем обрабатываются поиском, очередь индексирование выполняется отдельной задачей archive.search.index. Импортёр сохраняет письмо и устанавливает time_archived, после чего индексатор выбирает записи с time_indexed=0 и отправляет их в Solr. Если индексатор обрабатывает письма медленнее, чем они поступают, очередь растёт и новые письма появляются в поискрезультатах с задержкой. Настройка помогает согласовать скорость обработки с ресурсами узлов Клавдия и Solr.
Перед началом
- Проверьте {{ССЫЛКА:maintenance.search-health|состояние поиска}} и убедитесь, что Solr доступен.
- Зафиксируйте размер очереди, скорость её изменения, загрузку процессора, память и задержку типичного поиска.
- Сохраните текущие настройки. Меняйте один параметр за раз и сравнивайте одинаковые операции при сопоставимой нагрузке.
Параметры настройки
| Параметр | Где задаётся | По умолчанию | Назначение |
|---|---|---|---|
KLVD_INDEXER_WORKERS |
klvd-node |
4 |
число параллельных потоков извлечения текста вложений |
index_batch_size |
|
100 |
число писем1000 |
SOLR_HEAP |
4096m |
размер памяти JVM |
|
autoSoftCommit |
конфигурация Solr, SOLR_OPTS |
|
задержка до появления новых документов в |
ramBufferSizeMB |
ом |
512 |
|
mergeFactor |
ом |
25 |
число сегментов, объединяемых за одну операцию |
Р
Параметры комендфигурации Solr меняйте способом, поддерживаемым для вашей поставки. Если требуется другой образ службы поиска, получите готовый образ и порядок его установки у поставщика.
Выберите числуо vCPUпотоков и память
| vCPU | KLVD_INDEXER_WORKERS |
SOLR_HEAP |
Применение |
|---|---|---|---|
| 4 | 2 | 2048m |
минимальная конфигурация |
| 8 | 4 | 4096m |
р |
| 8 | 8192m |
высокая нагрузка и |
KLVD_INDEXER_WORKERSне должен превышать число vCPU.КаждДополнительный рабочийе потоквыполняет HTTP-запросы к Solrисоздаётнагрузкужаюткак наи узел Клавдия, и Solr. Размер кучи выбирайте с учётом памяти остакльных служб и лимита контейнера.Для изменения окружения примените конфигурацию сервиса через Docker Compose. Подробная
Solr.процедура для памяти Solr: {{ССЫЛКА:maintenance.solr-tuning|Solr: эксплуатационная настройка}}.
Выбоер autoSoftCommit
1–3 с— новыите задоержкументы быстреепоявленияютписяем в поиске-
autoSoftCommit1–3 с сокращает ожидание, ноSolrчащепереоткрыбноваляет доступный для поисковыйа индекс исильнповышаеет нагружзку на процет CPU.ссор. Подходит для небольшого потокаимпорта, когда важна минимальная задержка поиска. -
10–15 с
—снижает нагрузкуна CPUи повышает пропускную способность индексирования, но новые документы могут появляться в поиске с задержкой до 15 секунд. Подходит длямассового импорта иначальной загрузки архива или массового импорта. Новые документы появляются с соответствующей задержкой после индексирования.
П
риосле аварийномго завершении Solr документы, находившиесявupdateLog,и восстанаовлениваются Solr прослверьтезобрапботкуска. Записи сtime_indexed=0в PostgreSQL остаются вочереди: оставшиесябудутнепроиндексированными письма должны обрабатываться повторно,.еЕсли
часть данных не попала в индекс.-
Когда увеличивать SOLR_HEAP
Рассмотрите увеличение SOLR_HEAP, если выполняются следующие условия:
очередь индексирования растёт, аKLVD_INDEXER_WORKERSуже соответствует числу vCPU;в журнале Solr часто фиксируется слияние сегментов и текущего объёмапамяти Solr недостаточнодляramBufferSizeMB;кПро
лонкаверьте [JVM Heap] (!) в [Инстансы SolrCloud]или/solr/admin/info/systemпоказывает устойчивую нехватку памяти и длительные, паузы сборки мусора и очередь индексирования.
SOLR_HEAP по {{ССЫЛКА:maintenance.solr-tuning|инструкции настройки Solr}}.
Если увеличениеть памятиь невльзя, созможно,гласуйте уменьшените ramBufferSizeMB. Не увели почивторно оцениайте параметры тоилько по развмеру очереди, пока не исключены недостельупность Solr и нехватка ресурсов других компонентов.
ПИзменение конфигурации индекса
Изменения mergeFactor и ramBufferSizeMB применяются к новым сегментам. Существующий индекс автоматически не перестраивается.
Если для применениея измесогласованениой конфигурации ко всему индексу solrconfig.xml
требуетсяего перестроить:
- Примените конфигурацию или установите готовый образ Solr по инструкции поставщика.
- В согласованное окно обслуживания откройте [Поиск (Solr)] и выполните [Сбросить поиск].
- Выполните [Реиндексировать ВСЁ] и контролируйте очередь задач.
Сброс удаляет поисковый индекс.
ПДо оперед сбросомации проверьте доступностьисходныхданных архива и согласуйте период недоступности полнотекстового поиска. Для одного измененияSOLR_HEAPсброс и переиндексация не требуются.Проверьте результат
ИзСравните скорость уменьшенияочереди, загрузку процессора иmergeFactorпамяти и время типичного поиска с исходными значениями. При ухудшении верните прramBufferSizeMBименяются к новдым сегментам. Сдуществующий индекс автоматически не перестраивается.
Чтобы применить новые параметры.ко всему индексу:
Изменитеsolrconfig.xmlи пересоберите образklvd-solr.В разделе[Поиск (Solr)]выполните[Сбросить поиск].Выполните[Реиндексировать ВСЁ].
После переиндексацию проверяйте по очереди задач и доступности тестовых писем в поискегменты будут созданы с новой конфигурацией.Связанные материалы
- {{ССЫЛКА:maintenance.search-reindex|Переиндексация архива}}
- {{ССЫЛКА:maintenance.solr-tuning|Solr: эксплуатационная настройка
— память JVM и граница 31 ГБ}}Навигация по книге
- Следующая статья: {{ССЫЛКА:maintenance.solr-tuning|Solr: эксплуатационная настройка
}}