全部产品
Search
文档中心

向量检索服务 Milvus 版:弹性伸缩

更新时间:Jun 17, 2026

Milvus 集群在业务高峰期(如白天写入高峰)可能出现 Data Node、Index Node CPU 和内存水位过高,导致索引构建速度慢、Compaction 延迟,甚至发生 OOM 导致节点重启。而在夜间或非峰值时段,这些节点资源利用率低,造成计算资源闲置浪费。

按时间规则弹性伸缩功能支持您对 Data Node、Index Node 配置多条按时间规则的弹性伸缩计划,在指定时间自动扩缩容相应节点,从而减轻人工调节负担,优化资源成本。

使用限制

  • 不支持基于负载或指标(如 CPU、QPS 等)的自动弹性伸缩。

  • 单实例仅支持一个执行时区,不做跨时区转换。

  • 单节点类型最多支持 10 条规则。

  • 双可用区高可用实例在调整节点数量时,步长为 2。

  • 弹性伸缩期间实例会短暂进入弹性扩容弹性缩容状态,此期间无法对实例执行其他变配操作。

  • 扩容说明:扩容过程通常仅需几分钟,主要涉及新增节点的分配和初始化。扩容完成后,实例会自动进行数据再平衡,通常需要几分钟不等。

  • 缩容说明:缩容操作会先触发数据迁移(Decommission),确保被移除节点上的数据安全迁移到剩余节点后,再释放节点资源。数据迁移时间受集群负载影响。优雅下线超时时间默认为 1 小时,若在超时时间内数据迁移未完成,系统将强制完成缩容。

版本与规格限制

  • 弹性伸缩仅适用于标准版实例,入门版不支持。

  • 实例引擎版本满足以下要求:

引擎版本

最低版本要求

2.6

所有 2.6 版本均支持

2.5

2.5.12-0.6.2_3.8.0 及以上

2.4

2.4.23-0.4.3_3.8.0 及以上

说明

低于此版本的可以通过版本升级后开启使用弹性伸缩。

  • 支持弹性伸缩的组件

Milvus 不同版本支持弹性伸缩的组件如下:

组件

2.4

2.5

2.6

Data Node

支持

支持

支持

Index Node

支持

支持

Streaming Node

不支持

Proxy

不支持

不支持

不支持

Query Node

不支持

不支持

不支持

元数据服务

不支持

不支持

不支持

计费说明

  • 包年包月实例:实例总资源量 = 基础资源量 + 弹性资源量。其中基础资源量(包年包月)不参与弹性伸缩;弹性资源量采用按量计费,需先手动开启按量资源组。

  • 按量计费实例:默认开启按量资源组,不区分基础资源与弹性资源,所有资源均可视为按量资源组内资源。

前提条件

  • 实例状态为运行中

  • 包年包月实例已开启按量资源组。

  • 当前账号具备实例变配权限。

步骤一:进入弹性伸缩页面

  1. 登录阿里云 Milvus 控制台

  2. 在左侧导航栏,单击Milvus实例

  3. 在顶部菜单栏,选择目标地域。

  4. 在实例列表中,单击目标实例名称。

  5. 在实例详情页,单击弹性伸缩页签。

说明

弹性伸缩页签不展示,那就是当前实例版本不支持按时间规则弹性伸缩。

步骤二:(可选)开启按量资源组

如果您使用的是按量计费实例,请跳过本步骤。

包年包月实例需先开通按量资源组,才能配置弹性伸缩规则。

  1. 在弹性伸缩页面,查看按量资源组状态。

  2. 若未开通,根据页面提示开通按量资源组

  3. 开通后,您可以手动对按量资源组进行扩容或缩容:

    • 扩容:按量资源组节点数上限为 50 个,双可用区高可用实例步长为 2。扩容期间,不可进行其他缩容、升配、降配、修改配置、升级等操作。按量资源组的节点规格与基础资源的节点规格一致,不支持修改。

    • 缩容:按量资源组节点数下限为 0,双可用区高可用实例步长为 2。缩容期间,不可进行其他扩容、升配、降配、修改配置、升级等操作。

步骤三:新建弹性伸缩规则

  1. 在弹性伸缩页面,单击新建规则

  2. 在弹出的新建规则对话框中,配置以下参数。

    参数

    描述

    规则名称

    必填。长度为 1~64 个字符,不支持特殊字符。同一实例内规则名称不允许重复。

    执行间隔

    必填。

    规则执行的时间间隔,选择每天,在指定时间点每天执行一次。

    选择具体的执行时间,24 小时制,精确到分钟。

    也可以选择使用 Cron 表达式,通过标准 5 位 Cron 表达式自定义执行计划,适用于更灵活的调度场景。

    节点配置

    配置定时伸缩触发时的目标节点信息:

    • 节点类型:单选,必选。选择需要伸缩的组件类型(如 Data Node、Index Node 等)。

    • 节点规格:弹性节点的规格。

    • 弹性资源量(节点数):规则生效时,选定节点的按量资源量将被调整到此目标值。

    • 包年包月实例:下限为 0,上限为 50。

    • 按量计费实例:下限为节点数最小值(Data Node:1,Index Node:1),上限为 50。

    双可用区高可用实例的节点增减步长为 2。

    说明
    • 若当前实例的单节点弹性伸缩规则数量已达上限(10 条),将禁止创建,请删除部分规则后再创建。

    • 同一节点类型在不允许在同一时间配置规则。

  3. 单击确定,完成规则创建。

规则创建成功后,将在规则列表中展示。

规则配置示例

示例一:工作时间扩容

每天上午 9 点自动扩容 Data Node,以应对日间数据写入高峰:

参数

配置值

规则名称

day-scale-out

执行间隔

每天

执行时间

09:00

节点类型

Data

弹性资源量

2

示例二:夜间缩容

在每天晚上 22 点自动缩容 Data Node,释放非高峰时段的资源:

参数

配置值

规则名称

night-scale-in

执行间隔

每天

执行时间

22:00

节点类型

Data

弹性资源量

0

管理弹性伸缩规则

在弹性伸缩页面的规则列表中,您可以查看、编辑、停用、启用或删除弹性伸缩规则。

查看规则列表

规则列表展示以下字段:

  • 规则 ID / 规则名称

  • 节点类型(Data Node / Index Node)

  • 目标资源量(节点数)

  • 执行周期(每天 执行时间点)

  • 操作

编辑弹性规则

  1. 在弹性伸缩 Tab 页面,找到目标规则。

  2. 单击规则操作列的修改

  3. 修改规则参数后,单击确定

说明
  • 节点类型不可修改,其余字段均可调整。

  • 若规则当前处于执行中状态,不允许编辑。

删除弹性规则

  1. 在弹性伸缩 Tab 页面,找到目标规则。

  2. 单击规则操作列的删除

  3. 在弹出的确认对话框中,单击确定

说明
  • 删除规则后,该规则将不再触发弹性伸缩活动,已经执行的弹性伸缩不受影响。

  • 若规则当前处于执行中状态,不允许删除。

启用 / 停用弹性规则

您可以通过切换规则的启用 / 停用状态来控制规则是否生效,而无需删除规则。

  1. 在弹性伸缩 Tab 页面,找到目标规则。

  2. 单击规则操作列的启用停用

说明
  • 禁用规则后,该规则将不再触发弹性伸缩活动,已经执行的弹性伸缩不受影响。

  • 若规则当前处于执行中状态,不允许修改。

修改时区

  1. 在弹性伸缩 Tab 页面,单击切换时区

  2. 选择对应的时区,单击确定

说明

只有实例下没有规则的情况下可以修改时区。

弹性伸缩概览

在弹性伸缩 Tab 页面的弹性伸缩概览区域,可以查看历史弹性伸缩记录:

字段

描述

规则名称

触发本次伸缩活动的规则名称

组件类型

本次伸缩涉及的组件

状态

伸缩活动的执行状态,包括:待执行、执行中、成功、失败、已拒绝、已取消

开始时间

伸缩活动的开始时间

结束时间

伸缩活动的结束时间

描述

伸缩活动的详细描述信息

常见问题

弹性伸缩会影响正在运行的查询和写入吗?

弹性伸缩过程设计为平滑操作,不会中断正在运行的查询和写入链路,确保业务连续性。

缩容时数据安全吗?

缩容操作采用优雅下线(Decommission)机制,系统会先将被移除节点上的数据安全迁移到剩余节点,待数据迁移完成并确认无数据丢失后,才会释放节点资源。优雅下线超时时间默认为 1 小时,若超时未完成,系统将强制完成缩容。

为什么我的实例不支持弹性伸缩?

请检查以下条件:

  • 实例规格需要为标准版,入门版不支持弹性伸缩。

  • 引擎版本需要满足最低版本要求(2.4 需 >= 2.4.23-0.4.3_3.8.0,2.5 需 >= 2.5.12-0.6.2_3.8.0,2.6 所有版本均支持)。

  • 实例需处于运行中状态。

弹性扩出的节点如何计费?

弹性扩出的节点采用按量计费方式,按实际使用时长计费。当弹性缩容释放节点后,即停止计费。

弹性伸缩规则最多可以配置多少条?

每个组件最多可配置 10 条伸缩规则。