每节点分片总数
集群级分片分配器尝试将单个索引的分片分布在尽可能多的节点上。然而,根据你有多少分片和索引,以及它们有多大,可能并不总是能够均匀地分布分片。
以下的 dynamic
(动态)设置允许你对每个节点允许的单索引的分片总数,指定硬限制:
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 的分片限制。
!> 这些设置强加了一个硬限制,这可能导致一些分片不被分配。
小心使用。