若您的业务存在流量波动(如高低峰期),导致集群资源利用率长期偏低,通过降配操作可缩减节点规格、数量或调整存储类型等实现资源与业务需求匹配,有效优化成本。
降配须知
降配操作可能引发服务延迟、配置冲突及费用变更,请务必提前完整阅读以下须知内容。
服务稳定性
集群变更期间服务稳定性规则:
集群
服务状态
应对措施
高负载+无副本
高负载:降配时高并发写入或者查询,CPU>60%、堆内存>50%
偶发访问超时
客户端启用重试机制
降配前增加索引副本数(至少为1)
降配后数据节点数≤2个
可能造成数据丢失
操作窗口:业务低峰期进行。
配置约束
仅v3部署架构下的集群支持降配数据节点存储空间。
不支持在降配集群时升级版本。
一次降配操作仅支持变更一种类型的节点。
不支持降配弹性数据节点。
同一集群连续两次降配操作需间隔≥30分钟。
降配后CPU规格约束
基础规则:目标规格CPU和内存 ≥ 当前规格的一半。
禁止降配至:
1核2GiB、2核2GiB、2核4GiB、4核4GiB(Kibana节点可降配至2核2GiB)特殊规格处理:需降配至禁用规格时,需新建集群后进行数据迁移。
成本影响
降配前检查
未完成以下检查直接降配可能导致集群崩溃、数据丢失或服务不可用,请逐项检查验证。
集群健康
执行
GET _cluster/health确保集群为状态为GREEN。负载安全
集群满足以下条件,可支持降低配置:
节点类型
CPU使用率
JVM堆内存使用率
专有主节点
近1天单节点峰值 < 30%
近1天单节点峰值 < 25%
其他角色节点
同时满足:
• 近1天单节点峰值 < 50%
• 近1天所有节点均值 < 30%
同时满足:
• 近1天单节点峰值 < 50%
• 近1天所有节点均值 < 30%
索引就绪
执行
GET /_cat/indices?v检查是否存在状态为CLOSE的索引。如果存在,需执行POST /<index_name>/_open临时打开这些索引,否则配置变更可能失败,原因说明:存在CLOSE状态的索引时,集群状态无法达到GREEN。ES在执行某些敏感配置变更(如分片分配规则调整)前会强制要求集群状态为GREEN。
变配过程中集群会重新分配分片:
关闭索引的分片无法参与重分配。
导致依赖GREEN状态的操作失败。
导致集群状态无法达到GREEN(最高只能达到YELLOW)。
执行
GET _cat/indices?v检查索引副本数是否至少为1。对于多可用区实例,在变更时需确保集群中任意一个索引的副本数小于可用区数,建议副本数设置为1,变更完成后,手动增加副本数。
方式一:通过控制台降配
降配规格、磁盘类型和空间
在实例列表,单击

更多操作入口:在基本信息页面,单击
在降配页面,根据业务需要调整配置项参数。
重要可调整的配置项参数因集群类型和版本不同而有所出入,以降配页面为准。
支持节点规格(节点存储类型)降配,按性能从高到低排序:
数据节点存储空间降配(仅限v3管控部署模式下的集群):为确保集群稳定性,降配后磁盘空间使用率应低于60%,即降配前需确保:当前磁盘使用量 < 降配后磁盘空间 × 0.6。

v2管控部署模式下的集群不支持通过控制台或者API降配存储空间,如需降配请联系技术支持。
智能变更(默认开启):系统根据变配项自动选择最优变更方式。
强制变更(默认关闭,不建议开启):此选项会跳过健康检查并触发强制重启集群,可能导致服务长时间中断(恢复时间取决于数据量)。
单击查看产品服务协议、服务等级协议,无异议后,单击立即购买,系统根据变配项自动选择最优变更策略,同时按照付费方式收取费用。
变更期间,集群状态变为生效中,集群性能可能出现短暂波动,可能出现请求闪断;变更完成后,集群状态更新为正常,集群内节点IP会发生变化。
缩容数据节点
在实例基本信息页面,单击。

根据业务需要选择节点类型以及需要减少的节点个数。
重要阿里云ES在缩容前将自动执行节点安全校验,若校验失败,请根据报错提示排除错误后重试缩容。
可调整的配置项参数因集群类型和版本不同而有所出入,以控制台页面为准,本示例为向量增强版8.17.0版。

单击 确定,系统执行缩容操作,同时根据集群配置以及付费方式计量费用。
变更期间,集群状态变为生效中,集群性能可能出现短暂波动,可能出现请求闪断;变更完成后,集群状态更新为正常,集群内节点IP会发生变化。
方式二:调用API降配
集群降配API文档:UpdateInstance
数据迁移和回滚
为保证数据的安全,进行缩容的数据节点中不应该存在数据。如果所选数据节点中有数据,系统会提示您进行数据迁移。迁移后所选节点上不再有任何索引数据,新的索引数据也不会被写入该节点。
数据迁移
在缩容配置区域,单击提示栏中的数据迁移辅助工具。

数据迁移辅助工具通过Elasticsearch分片过滤器实现数据平滑迁移,数据迁移过程业务无感知。
在集群数据节点迁移对话框,选择节点迁移方式。

参数
说明
系统建议
通过系统建议自动选择需要迁移的数据节点。
自定义
手动选择需要迁移的数据节点。
选中数据迁移协议,单击确认。
数据回滚
数据迁移是一个周期很长的过程,在此期间集群状态和数据的变更可能会导致迁移失败,具体可在任务列表中查看。当数据迁移失败或者迁移完成后,可通过以下步骤对迁移节点进行回滚:
登录目标阿里云Elasticsearch实例的Kibana控制台,根据页面提示进入Kibana主页。
登录Kibana控制台的具体操作,请参见登录Kibana控制台。
说明本文以阿里云Elasticsearch 6.7.0版本为例,其他版本操作可能略有差别,请以实际界面为准。
在左侧导航栏,单击Dev Tools。
在Console中执行以下命令,获取迁移节点的IP地址。
GET _cluster/settings执行成功后,返回如下结果。
{ "transient": { "cluster": { "routing": { "allocation": { "exclude": { "_ip": "192.168.xx.xx,192.168.xx.xx,192.168.xx.xx" } } } } } }执行以下命令,回滚迁移节点数据。
回滚部分节点数据。配置中要去掉需要回滚的节点,但要保留不回滚的节点。
PUT _cluster/settings { "transient": { "cluster": { "routing": { "allocation": { "exclude": { "_ip": "192.168.xx.xx,192.168.xx.xx" } } } } } }回滚全部节点数据。
PUT _cluster/settings { "transient": { "cluster": { "routing": { "allocation": { "exclude": { "_ip": null } } } } } }
执行以下命令,校验是否完成数据回滚。
GET _cluster/settings执行成功后,如果返回结果中不包含迁移节点的IP地址,则表示已经完成该节点的迁移回滚任务。您也可以通过观察相应节点是否被重新分配shard来判断。
说明数据迁移或回滚时,均可以通过
GET _cat/shards?v命令查看任务状态。
进度监控与降配后验证
降配开始后查看进度:

单击展开详情:

降配完成后通过集群基本信息页确认配置是否生效:
集群状态恢复为正常

节点数和存储规格:确认节点数、存储规格、存储空间是否跟预期一致。

分片均衡:
GET _cat/allocation?v检查分片分布,如遇分片不均衡,请参考集群负载不均解决方案进行解决。