Параметр одновременного восстановления узла определяет максимальное количество хранилищ, которые могут быть восстановлены одновременно с каждого узла. Восстановление шардов требует как дисковых, так и сетевых ресурсов, поэтому целесообразно ограничить количество шардов, которые могут быть восстановлены с данного узла в один момент времени.
Восстановления узлов Elasticsearch
Если же значение параметра concurrent recoveries слишком ограничено и установлено слишком низко, то кластер может вообще не восстанавливать шарды или восстановление будет происходить медленнее, чем обычно. Это может привести к проблемам с производительностью, поскольку кластер имеет меньше реплик, чем планировалось, или даже к тому, что индекс окажется недоступным для записи, и кластер будет оставаться желтым или красным в течение длительного периода времени.
Существует ряд различных настроек, которые похожи, но имеют тонкие различия:
cluster.routing.allocation.node_concurrent_incoming_recoveries (по умолчанию 2)
Сколько одновременных входящих восстановлений шардов (обычно реплик) разрешено на узле.
cluster.routing.allocation.node_concurrent_outgoing_recoveries (по умолчанию 2)
Количество одновременных исходящих восстановлений шардов, разрешенных на узле.
cluster.routing.allocation.node_concurrent_recoveries (по умолчанию 2)
Это удобная функция для одновременного задания параметров cluster.routing.allocation.node_concurrent_incoming_recoveries и cluster.routing.allocation.node_concurrent_outgoing_recoveries.
cluster.routing.allocation.node_initial_primaries_recoveries (по умолчанию 4)
Эта операция отличается от описанных выше тем, что предполагает восстановление первичного узла с использованием данных с локального диска. Поскольку эти операции не требуют сетевого взаимодействия, на одном узле может параллельно выполняться большее количество операций.
Как решить эту проблему
Проверьте текущие настройки кластера:
GET _cluster/settings
При необходимости измените настройки параллельного восстановления. В общем случае можно использовать значения по умолчанию.
1 2 3 4 5 6 | PUT _cluster/settings { "transient": { "cluster.routing.allocation.node_concurrent_recoveries": 2 } } |