Общее количество фрагментов на узел
Распределитель фрагментов на уровне кластера старается распределить фрагменты одного индекса по максимально возможному количеству узлов. Однако, в зависимости от количества фрагментов и индексов, а также их размера, равномерное распределение фрагментов может быть невозможно.
Следующее динамическое свойство позволяет указать жёсткий лимит на общее количество фрагментов одного индекса на один узел:
-
index.routing.allocation.total_shards_per_node - Максимальное количество фрагментов (реплик и основных) для размещения на одном узле. По умолчанию неограничено.
Вы также можете ограничить количество фрагментов на узле независимо от индекса:
-
cluster.routing.allocation.total_shards_per_node -
(Динамическое) Максимальное количество основных и реплицированных фрагментов, размещаемых на каждом узле. По умолчанию
-1(неограниченно).Elasticsearch проверяет это свойство во время распределения фрагментов. Например, в кластере установлено свойство
cluster.routing.allocation.total_shards_per_nodeсо значением100, а на трёх узлах распределены фрагменты следующим образом:- Узел A: 100 фрагментов
- Узел B: 98 фрагментов
- Узел C: 1 фрагмент
Если узел C выходит из строя, Elasticsearch перераспределяет его фрагмент на узел B. Перераспределение фрагмента на узел A превысило бы лимит фрагментов для узла A.
Эти настройки накладывают жёсткий лимит, что может привести к тому, что некоторые фрагменты не будут распределены.
Используйте с осторожностью.
© 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/8.17/allocation-total-shards.html