弹性资源池

更新时间:
复制为 MD 格式

弹性资源池是 EAS 提供的一种服务级别混合资源调度策略。它允许部署在专属资源组的服务,在因业务高峰触发扩容且专属资源不足时,自动将新增的副本“溢出”到按量付费的公共资源组中,从而保障服务的弹性伸缩能力。

功能优势

  • 突破资源组容量限制:当专属资源组内资源不足时,服务扩容可自动使用公共资源池中的按量实例,确保水平自动扩缩容(基于 QPS、CPU 等指标)不受专属资源组物理节点数量限制。

  • 优化成本:通过预留低成本预付费资源满足基线负载,仅在峰值时按需使用按量资源,避免为峰值负载长期持有冗余专属资源,从而降低整体资源成本。

工作原理

弹性资源池的调度逻辑遵循明确的优先级顺序,以实现成本和稳定性的平衡。

  • 扩容

    1. 当服务触发扩容时,EAS 调度器首先尝试在服务所在的专属资源组内创建新实例。

    2. 如果专属资源组因资源不足(如无可用节点,或节点剩余 CPU/内存/GPU 无法满足实例要求)而无法创建实例,调度器将使用您在配置弹性资源池时指定的资源规格(实例类型)在公共资源组中创建新实例。

  • 缩容

    1. 当服务触发缩容时,系统会优先选择并终止位于公共资源组中的实例。

    2. 只有当公共资源组中的所有弹性实例都被缩容后,系统才会开始缩容专属资源组中的实例。这确保了成本较高的弹性资源被优先释放,同时保留了更稳定的保底实例。

前提条件

已创建专属资源组,详情请参见使用EAS资源组

配置方法

服务部署时开启弹性资源池

控制台配置

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 推理服务页签,单击部署服务,然后在自定义模型部署区域,单击自定义部署

  3. 自定义部署页面的资源信息区域,配置以下关键参数,其他参数请参见自定义部署

    参数

    描述

    资源类型

    选择EAS资源组

    资源组

    选择已创建的专属资源组。

    弹性资源池

    打开弹性资源池开关,并选择资源规格

    完成弹性资源池配置后,服务扩容时遇到机器资源不足,新扩出的实例会自动启动在已配置的按量付费公共资源上,并以公共资源组的方式进行计费。在缩容时,优先缩减公共资源组中的服务实例。

    image

  4. 单击部署

JSON配置

开启弹性资源池的关键参数如下,其他参数请参见JSON部署

  • resource_burstable:配置为true时,表示开启弹性资源池。

  • cloud.networking:开启弹性资源池时,为保证弹性伸缩过程中的网络可用性,请通过该字段配置服务的专有网络。

    重要

    使用专属资源组时可在资源组级别配置专有网络,但专属资源组仅可在服务级别(通过cloud.networking字段)配置。

  • cloud.computing:扩容到公共资源的实例可使用的机器规格,详情请参见使用公共资源

JSON文件配置示例如下。

{
  "model_path": "http://examplebucket.oss-cn-shanghai.aliyuncs.com/models/lr.pmml",
  "name": "test_burstable_service",
  "processor": "pmml",
  "metadata": {
    "instance": 1,
    "cpu": 1,
    "resource": "eas-r-xxx",
    "resource_burstable": true
  },
   "cloud": {
        "computing": {
            "instance_type": "ecs.r7.2xlarge"
        },
        "networking": {
            "security_group_id": "sg-uf68iou5an8j7sxd****",
            "vswitch_id": "vsw-uf6nji7pzztuoe9i7****"
        }
    }
}

服务部署后开启或关闭弹性资源池

通过控制台

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 单击已部署服务操作列下的更新

  3. 更新服务页面的资源信息区域开启或关闭资源自动伸缩功能。

    • 开启资源自动伸缩

      资源信息区域,打开弹性资源池开关,并配置公共资源组资源规格。

    • 关闭资源自动伸缩

      资源信息区域,关闭弹性资源池开关。

  4. 单击更新

通过本地客户端

您可以使用以下命令,为已部署的服务快速打开或关闭自动伸缩功能。以Windows 64版本为例:

重要

如果在专属资源组中部署服务时未配置cloud.networking参数,则开启自动伸缩功能后,扩容到公共资源组的实例不支持网络直连功能。

# 开启服务资源自动弹性伸缩。
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=true

# 关闭服务资源自动弹性伸缩。
eascmdwin64.exe modify <service_name> -Dmetadata.resource_burstable=false

其中:<service_name>:需要替换为已部署的服务名称。

重要

服务资源自动伸缩功能的开启和关闭只会影响新创建的服务实例,老实例不会自动做迁移。例如:一个服务扩容完成后有2个实例为pending(等待中)状态,在开启了资源自动伸缩功能后,这2pending(等待中)的实例不会自动迁移至公共资源组上。您可以在控制台上重启该实例,实例重启后会调度到公共资源中。同理,已经开启了自动伸缩的服务,调度到公共资源中的服务实例,在关闭了资源自动伸缩功能后,也不会自动调度回专属资源中。

相关文档

  • 启用水平自动扩缩容功能,系统将根据您设定的指标自动进行扩容或缩容,详情请参见水平自动扩缩容

  • 如果您需要定时将副本数自动扩缩容到指定数量,请参见定时自动扩缩容功能