全部产品
Search
文档中心

批量计算:竞价型资源

更新时间:Sep 21, 2022

竞价实例是专为降低用户ECS计算成本而设计的一种按需实例。竞价实例的价格由阿里云ECS设置,并会根据市场上针对该实例的供需变化而浮动。因此,用户可充分利用竞价实例的价格浮动特性,在合适的时间购买该竞价实例资源,从而降低计算成本,并在整体成本下降的前提下,提升业务在该时间周期内的吞吐量。更多详情,请参阅 竞价实例

在批量计算中使用竞价型实例与 ECS 计费一致,不需要支付额外费用。目前批量计算支持的竞价实例类型请参阅 实例规格

1. 提交作业

下表列举了使用竞价实例需要设置的参数值:

参数

描述

ResourceType

资源类型,可选范围:[Spot,OnDemand], 这里设置为Spot。

InstanceType

Spot 实例类型,可以通过 getQuota()方法获取可用的Spot实例类型列表。

SpotStrategy

取值范围:

SpotWithPriceLimit:设置上限价格的竞价实例;

SpotAsPriceGo:系统自动出价,最高不超过按量付费价格。

SpotPriceLimit

实例的每小时最高价格。支持最大 3 位小数,SpotStrategy 为 SpotWithPriceLimit 生效。

1.1. 使用 Java SDK 提交作业

TaskDescription taskDesc = new TaskDescription();
AutoCluster autoCluster = new AutoCluster();
autoCluster.setResourceType("Spot");
autoCluster.setInstanceType("ecs.sn1.large");

//可选配置
autoCluster.setSpotStrategy("SpotWithPriceLimit");
autoCluster.setSpotPriceLimit(0.6f);

1.2. 使用 Python SDK 提交作业

job_desc['DAG']['Tasks']['my-task']['AutoCluster']['ResourceType'] = 'Spot'
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['InstanceType'] = 'ecs.sn1.large'

# 以下配置可选
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['SpotStrategy'] = 'SpotWithPriceLimit'
job_desc['DAG']['Tasks']['my-task']['AutoCluster']['SpotPriceLimit'] = 0.6   # 0.6元

1.3. 使用命令行提交作业

举例0:提交spot作业

bcs sub "python demo.py" --resource_type Spot -t ecs.sn1.large

举例1: 限制每小时最高价格0.6元

bcs sub "python demo.py" --resource_type Spot -t ecs.sn1.large --spot_price_limit 0.6

举例2: spot_price_limit设置为0,表示系统自动出价,最高不超过按量付费价格

bcs sub "python demo.py" --resource_type Spot -t ecs.sn1.large --spot_price_limit 0

2. 创建集群和修改集群

2.1. 使用 Java SDK

GroupDescription group = new GroupDescription();
group.setDesiredVMCount(3);
group.setInstanceType("ecs");
group.setResourceType("OnDemand");

//可选配置
group.setSpotPriceLimit(0.6f);
group.setSpotStrategy("SpotWithPriceLimit");

2.2. 使用 Python SDK

group_desc['ResourceType'] = 'Spot'
group_desc['InstanceType'] = 'ecs.sn1.large'

# 以下配置可选
group_desc['SpotStrategy'] = 'SpotWithPriceLimit'
group_desc['SpotPriceLimit'] = 0.6   # 0.6元

2.3. 使用命令行

创建集群时设置竞价策略:

bcs cc cluster_1 -t ecs.sn1.large --resource_type Spot --spot_price_limit 0.6

修改集群竞价策略:

bcs uc cls-xxxx --spot_price_limit 0.8