升配集群

更新时间:
复制 MD 格式

Elasticsearch(ES)集群的CPU、内存、磁盘等资源使用率持续处于高位,或查询与写入性能无法满足业务需求时,可通过扩展节点数量、 提升节点规格、增加磁盘空间、新增节点类型等方式升级集群配置,恢复服务稳定性。

升配前须知

重要

升配操作可能引发服务延迟、配置冲突及费用变更,请务必提前完整阅读以下须知内容。

  • 服务稳定性

    • 集群变更期间服务稳定性规则:

      集群

      服务状态

      应对措施

      正常负载+有副本

      正常负载:CPU≤60%、堆内存≤50% 、load<核心数

      持续服务,性能可能轻微下降

      无需额外操作

      高负载+无副本

      高负载:升配时高并发写入或者查询,CPU>60%、堆内存>50%

      偶发访问超时

      • 客户端启用重试机制

      • 升配前增加索引副本数

      高负载+状态异常

      偶发访问超时或者抖动

      修复集群状态后再变更

    • 操作窗口:业务低峰期进行。

  • 容量规划

    合理评估集群所需容量

  • 配置约束

    • 升配不支持版本升级。

    • 一次升配操作仅支持变更一种类型的节点。

  • 成本影响

    提交升配订单后,系统将按照更新后的配置单计费。计费规则请参见按量付费包年包月

升配前检查

重要

未完成以下检查直接升配可能导致集群崩溃、数据丢失或服务不可用,请逐项检查验证。

  • 集群健康

    执行GET _cluster/health 确保集群为状态为GREEN。如遇集群状态不健康,请参照集群变更报错-集群状态不健康进行解决。

  • 负载安全

    执行GET _cat/nodes?v ,建议CPU ≤ 60%,如果超出,客户端启用重试机制,同时增加索引副本数。

  • 索引就绪

    • 执行GET /_cat/indices?v检查是否存在状态为CLOSE的索引。如果存在,需执行POST /<index_name>/_open临时打开这些索引,否则配置变更可能失败,原因说明:

      • 存在CLOSE状态的索引时,集群状态无法达到GREEN。ES在执行某些敏感配置变更(如分片分配规则调整)前会强制要求集群状态为GREEN。

      • 变配过程中集群会重新分配分片:

        • 关闭索引的分片无法参与重分配。

        • 导致依赖GREEN状态的操作失败。

        • 导致集群状态无法达到GREEN(最高只能达到YELLOW)。

    • 执行GET _cat/indices?v检查索引副本数是否至少为1。

      对于多可用区实例,在变更时需确保集群中任意一个索引的副本数小于可用区数,建议副本数设置为1,变更完成后,手动增加副本数。

  • 分片均衡

    执行GET _cat/shards?v检查是否存在不均衡的分片。

    重要

    升配前检查分片分布是否均衡,是预防升配过程中或完成后集群性能恶化甚至崩溃的关键措施。

    • prirep:副本分片(r)是否未分配(UNASSIGNED)。

    • state:是否存在长期迁移卡住(RELOCATING)。

    上述问题会阻止新节点正常接收分片,导致升配后集群状态持续YELLOW/RED,如存在上述问题,请参见集群负载不均解决方案进行解决。

方式一:通过控制台升配

  1. 实例列表,单击升配

    更多操作入口:在基本信息页面,单击配置变更 > 集群升配

  2. 变配页面,根据业务需要调整配置项参数。

    重要

    可调整的配置项参数因集群类型和版本不同而有所出入,以升配页面为准。

    • 可用区数量变配规则如下,如遇可用区规格库存不足时,需迁移可用区下的节点后再升配。

      扩增:支持从 1 个可用区扩增至 2 个或 3 个可用区。

    • 支持节点规格(节点存储类型)升级,按性能从低到高排序:

      1. 上一代云盘:云盘(普通云盘)-> 高效云盘->SSD云盘。

        说明

        已在部分地域及可用区逐步停止售卖,您在选择云盘时,建议选用ESSD云盘。

      2. ESSD云盘:ESSD(Enterprise SSD)云盘结合25 GE网络和RDMA技术,为您提供单盘高达100万的随机读写能力和单路低时延性能。

      3. 本地盘。

        说明

        本地盘是ECS实例所在物理机上的本地硬盘设备,为ECS实例提供本地存储访问能力,适用于对存储I/O性能、海量存储性价比有极高要求的业务场景。

      SSD 云盘升级为 ESSD 云盘

      当集群磁盘 IOUtil 使用率较高且经常打满时,建议将磁盘类型从 SSD 云盘升级为 ESSD 云盘,以提升 I/O 性能。

      组合变更注意事项:若需同时进行规格升配、磁盘类型变更及扩容,请注意修改磁盘类型不支持原地变更,仅支持蓝绿变更。为避免多次数据迁移,建议分步操作:

      1. 先进行实例规格变更和扩容(可使用智能变更或原地变更),待服务恢复后再执行下一步。

      2. 单独进行磁盘类型变更(蓝绿变更)。蓝绿变更仅在数据同步完成切换节点时可能有闪断,对业务影响较小。

    • 智能变更(默认开启):系统根据变配项自动选择最优变更方式。可手动关闭并指定变更方式:

      变更方式

      原理

      耗时

      服务影响和使用场景

      蓝绿变更

      添加新节点→拷贝数据→无缝切换

      较长

      • 节点IP会发生变化、集群性能可能出现短暂波动。

      • 适用于对变更时长不敏感,对集群可用性要求较高的场景。

      原地变更

      滚动更新节点(无需数据拷贝)

      较短

      • 节点IP无变化、集群性能可能出现短暂波动。

      • 适用于集群遇到性能瓶颈,期望快速完成变更的场景。

        重要

        如果水位较高(如CPU>60%),谨慎选择原地变更。

      说明

      原地变更并非所有操作都会触发滚动重启:

      • 节点规格变更(如升级 CPU、内存)会逐个重启节点完成变更。

      • v3 实例扩容磁盘仅执行在线扩容,无需重启节点。

    • 强制变更:跳过健康检查,但会触发集群强制重启,可能导致服务长时间中断(恢复时间取决于数据量),仅用于紧急扩容且集群已不可用场景。

  3. 单击查看产品服务协议服务等级协议,无异议后,单击立即购买,系统按照付费方式收取费用。

    变更期间,集群状态变为生效中,集群性能可能出现短暂波动,可能出现请求闪断;变更完成后,集群状态更新为正常

方式二:调用API升配

集群升配API文档:UpdateInstance

进度监控与升配后验证

  • 升配开始后查看进度:通过控制台->Elasticsearch实例->实例基本信息,单击展开详情

  • 升配完成后通过集群基本信息页确认配置是否生效:

    • 集群状态恢复为正常表示配置已生效。

    • 可用区是否与预期一致。

    • 节点数和存储规格:确认新节点已加入集群、存储规格是否正确。

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

常见问题

升配与性能指标

Q:升配一定能解决我的ES集群性能问题吗?

A:不一定。升配(增加CPU、内存、磁盘等资源)并非万能解决方案。在决定升配前,请先分析具体瓶颈:

  • CPU瓶颈:持续长时间超过80%的CPU使用率(非短暂峰值)

  • 内存瓶颈:频繁出现GC时间过长、内存交换(swap)或OOM错误

  • 磁盘瓶颈:关注实际I/O吞吐量而非仅看%util指标(详见下文)

  • 网络瓶颈:网络带宽持续打满,延迟明显增加

升配前请先确认实际瓶颈所在,避免不必要的资源浪费。有时通过索引优化、查询优化或调整配置可能比单纯升配更有效。

Q:为什么我的%util指标经常达到100%,但系统似乎运行正常?

A:iostat中的%util指标表示设备有I/O(即非空闲)的时间比率,不考虑I/O请求量有多少,只考虑有没有I/O活动。由于现代硬盘设备具备并行处理多个I/O请求的能力,即使%util达到100%,也不意味着设备已饱和:

  • 例如:某硬盘处理单个I/O需要0.1秒,有能力同时处理10I/O请求

    • 10I/O请求依次提交时,需要1秒完成,此时%util100%

    • 10I/O请求一次性提交,0.1秒就完成,此时%util只有10%

重要提示:%util指标在现代存储系统中已基本失去参考意义,不应仅凭此指标判断是否需要升配。

Q:应该关注哪些指标来判断磁盘性能瓶颈?

A:应重点关注以下指标而非仅看%util:

  1. I/O吞吐量:实际读写数据的速率(MB/s),与您的业务需求对比

  2. 响应时间:I/O请求的延迟时间,直接影响查询性能

  3. IOPS:每秒I/O操作数量,与业务模式匹配

  4. 队列深度:反映I/O请求等待情况

建议:非长时间(持续数小时)达到100%的%util指标无需特别关注。真正的性能瓶颈应通过fio等专业工具进行压测,获取实际的极限带宽和IOPS值来判断。

Q:如何正确评估磁盘是否达到性能瓶颈?

A:请按以下步骤进行评估:

  1. 分析业务模式:了解您的读写比例、I/O大小等特征

  2. 关注实际吞吐量:与业务需求对比,而非仅看%util

  3. 使用专业工具测试:通过fio等工具模拟实际业务负载,测试磁盘在真实场景下的性能

  4. 评估查询延迟:ES查询响应时间是否满足业务要求

  5. 监控关键指标:如indexing latency、search latencyES内部指标

如需确认是否需要升配,请提供完整的性能监控数据,包括但不限于:CPU使用率、内存使用情况、I/O吞吐量、查询延迟等,而非仅基于单一指标做决策。

升配操作影响

Q:升配集群支付后是否立即触发重启?能否指定重启时间?

A:变更配置(如升配、扩节点)在提交并支付后,系统将立即触发变更与重启流程,无法指定具体的重启时间。如果希望在特定时间点(如业务低峰期凌晨 3 点)执行重启,需在该时间点手动完成支付和提交操作。

Q:增加数据节点后是否需要重建索引?

A:不需要。增加数据节点是在线操作,集群会自动处理数据的重新分布(Rebalance),现有的索引、数据和业务查询都不会中断。

其他问题