在新建索引或者节点个数发生变化时(如节点重启、新增节点),Elasticsearch 将会对分片位置进行调整,在新增节点或新建索引时,可能会出现某个(某些)节点中的主分片数量不均衡,导致写入高峰期时节点负载不均衡,集群整体资源利用率偏低。
您可以通过配置主分片均衡
相关配置项,开启主分片均衡,从而尽量将不同索引的主分片均匀地分布在所有节点中,从而提高整体资源利用率。
awareness
控制主副分片的分布,强制主副分片无法分布在一个可用区中,因此会对 relocation
阶段的主分片均衡产生一定程度的限制。
7.10.2
版本实例和 OpenSearch 2.9.0
版本实例支持开启主分片均衡功能,您可以先尝试配置,如果遇到报错参数无法识别,可重启实例后就可以具备此功能。您可以通过以下参数设置索引的主分片均衡。
参数 | 说明 |
---|---|
| 是否开启
|
| 是否开启
|
|
|
| 迁移分片时是否先迁移主分片,取值如下:
|
| 表示违反全局的主分片均衡所带来 说明 当参数取值过大可能会导致某些情况下出现某些节点只有主分片而没有副分片的情况,因此需谨慎修改该参数配置。 |
下文以在 Kibana 界面为例,介绍如何开启主分片均衡。
登录云搜索服务控制台。
在顶部导航栏,选择目标实例所在的地域。
在实例列表页面,单击目标实例操作列的 Kibana。
在 Kibana 访问页面输入用户名和密码,单击 Log in,登录 Kibana。
在 Kibana 界面,输入以下命令,开启主分片均衡:
PUT _cluster/settings { "transistent": { "cluster": { "routing": { "allocation.balance.prefer_primary": true, "allocation.rebalance.primary.enable": true } } } }
说明
该参数只能在集群绿的情况下执行,如果集群是黄的也需要把 cluster.routing.allocation.allow_rebalance
从 indices_all_active
改到 indices_primaries_active
,均衡完之后需要改回原有配置。