每个节点的总分片数

编辑

集群级分片分配器会尝试将单个索引的分片尽可能分散到多个节点上。但是,根据您拥有的分片和索引的数量以及它们的大小,可能无法始终均匀地分散分片。

以下动态设置允许您指定每个节点允许的单个索引的总分片数的硬性限制

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 的分片限制。

这些设置会施加硬性限制,这可能导致某些分片未分配。

谨慎使用。