Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›ILM: Управление жизненным циклом индексов ›Действия жизненного цикла индексов

Принудительное слияние

Разрешенные фазы: горячая, тёплая.

Принудительно сливает индекс до указанного максимального количества сегментов. Это действие делает индекс только для чтения.

Действие forcemerge выполняется по принципу «лучше всего». Возможно, некоторые фрагменты будут перемещаться, и в этом случае они не будут объединены.

Чтобы использовать действие forcemerge в фазе hot, необходимо присутствие действия rollover. Если действие rollover не настроено, ILM отклонит политику.

Соображения по производительности

Принудительное слияние — ресурсоёмкая операция. Если слишком много принудительных слияний запускается одновременно, это может негативно сказаться на вашем кластере. Это может произойти, когда вы применяете политику ILM, которая включает действие принудительного слияния к существующим индексам. Если они соответствуют критериям min_age, они могут сразу перейти через несколько фаз. Это можно предотвратить, увеличив min_age или задав index.lifecycle.origination_date для изменения расчёта возраста индекса.

Если у вас наблюдается задержка в очереди задач принудительного слияния, вам может потребоваться увеличить размер пула потоков принудительного слияния, чтобы индексы можно было сливать параллельно. Для этого настройте thread_pool.force_merge.size настройку кластера.

Это может привести к падающим последствиям для производительности. Отслеживайте производительность кластера и постепенно увеличивайте размер пула потоков, чтобы уменьшить задержку.

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

Параметры

max_num_segments
(Обязательно, целое число) Количество сегментов для слияния. Для полного слияния индекса установите значение 1.
index_codec

(Необязательно, строка) Кодек, используемый для сжатия хранилища документов. Единственное допустимое значение — best_compression, которое использует DEFLATE для более высокой степени сжатия, но с более медленной производительностью хранимых полей. Для использования кодека LZ4 по умолчанию, опустите этот аргумент.

Если используется best_compression, ILM закроет, а затем снова откроет индекс перед принудительным слиянием. Пока индекс закрыт, он будет недоступен для операций чтения или записи.

Пример

PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "warm": {
        "actions": {
          "forcemerge" : {
            "max_num_segments": 1
          }
        }
      }
    }
  }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/ilm-forcemerge.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API