Перейти к основному контенту

Настройка производительности индексирования

ИЕсли письма поступают быстрее, чем обрабатываются поиском, очередь индексирование выполняется отдельной задачей archive.search.index. Импортёр сохраняет письмо и устанавливает time_archived, после чего индексатор выбирает записи с time_indexed=0 и отправляет их в Solr. Если индексатор обрабатывает письма медленнее, чем они поступают, очередь растёт и новые письма появляются в поискрезультатах с задержкой. Настройка помогает согласовать скорость обработки с ресурсами узлов Клавдия и Solr.

Перед началом

  • Проверьте {{ССЫЛКА:maintenance.search-health|состояние поиска}} и убедитесь, что Solr доступен.
  • Зафиксируйте размер очереди, скорость её изменения, загрузку процессора, память и задержку типичного поиска.
  • Сохраните текущие настройки. Меняйте один параметр за раз и сравнивайте одинаковые операции при сопоставимой нагрузке.

Параметры настройки

Параметр Где задаётся По умолчанию Назначение
KLVD_INDEXER_WORKERS переменная окруженияе Dockerсервиса Composeklvd-node 4 число параллельных потоков извлечения текста вложений через Solr Cell /update/extract. Каждый поток использует отдельное соединение curl с keep-alive (!)
index_batch_size config.settings, [Общие настройки] 100 число писем, выбираемых одним SELECT и отправляемых одним пакете иным HTTP-запдексиросомвания; /update в Solr. Уувеличение может снижзить накладныет чираслхо запросовды, но повышает потребует болениьше памяти. Максимум — 1000
SOLR_HEAP переменная окруженияе Dockerконтейнера ComposeSolr 4096m размер памяти JVM Solr. Увеличение может потребоваться, если очередь индексирования растёт и Solr ограничен производительностью CPU во время слияния сегментов
autoSoftCommit конфигурация Solr, SOLR_OPTS 10с10 с задержка до появления новых документов в результатах поиска.е; Меньшее значение скокращает задержку, но чаще переоткрывает поисковый индтекс ирвал повышает нагрузку на CPUпроцессор
ramBufferSizeMB solrconfig.xml, тконфигуребуетсация Solr; способ измернения сборгласуйте с поставщика klvd-solrом 512 размер буфера в памяти до записи сегмента на диск.; Увеличение уменьшаяет на число сегментов и операций их слияния
mergeFactor solrconfig.xml, тконфигуребуетсация Solr; способ измернения сборгласуйте с поставщика klvd-solrом 25 число сегментов, объединяемых за одну операцию. Увеличение уменьшает число операций слияния при пакетной индексации

Р

Параметры комендфигурации Solr меняйте способом, поддерживаемым для вашей поставки. Если требуется другой образ службы поиска, получите готовый образ и порядок его установки у поставщика.

Выберите числуо vCPUпотоков и память

vCPU KLVD_INDEXER_WORKERS SOLR_HEAP Применение
4 2 2048m минимальная конфигурация
8 4 4096m рекомендуемая конфигурация для рабочейая эксплуатациия
16+16 и больше 8 8192m высокая нагрузка и бмнольшое количествго вложений

KLVD_INDEXER_WORKERS не должен превышать число vCPU. КаждДополнительный рабочийе поток выполняет HTTP-запросы к Solr и создаёт нагрузкужают как наи узел Клавдия, и Solr. Размер кучи выбирайте с учётом памяти остакльных служб и лимита контейнера.

Для изменения окружения примените конфигурацию сервиса через Docker Compose. Подробная Solr.процедура для памяти Solr: {{ССЫЛКА:maintenance.solr-tuning|Solr: эксплуатационная настройка}}.

Выбоер autoSoftCommit

  • 1–3 с — новыите задоержкументы быстрее появленияют писяем в поиске
    • autoSoftCommit 1–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конфигурации ко всему индексу

требуется

его перестроить:

  1. Примените конфигурацию или установите готовый образ Solr по инструкции поставщика.
  2. В согласованное окно обслуживания откройте [Поиск (Solr)] и выполните [Сбросить поиск].
  3. Выполните [Реиндексировать ВСЁ] и контролируйте очередь задач.

Сброс удаляет поисковый индекс. ПДо оперед сбросомации проверьте доступность исходных данных архива и согласуйте период недоступности полнотекстового поиска. Для одного изменения SOLR_HEAP сброс и переиндексация не требуются.

Проверьте результат

ИзСравните скорость уменьшения mergeFactorочереди, загрузку процессора и ramBufferSizeMBпамяти и время типичного поиска с исходными значениями. При ухудшении верните применяются к новдым сегментам. Сдуществующий индекс автоматически не перестраивается.

Чтобы применить новые параметры. ко всему индексу:

  1. Измените solrconfig.xml и пересоберите образ klvd-solr.
  2. В разделе [Поиск (Solr)] выполните [Сбросить поиск].
  3. Выполните [Реиндексировать ВСЁ].

После переиндексацию проверяйте по очереди задач и доступности тестовых писем в поискегменты будут созданы с новой конфигурацией.

Связанные материалы

Навигация по книге