背景信息
抢占式实例简介
EAS支持部署服务时选择使用成本更低的抢占式资源实例(Spot Instance),EAS使用的是指定价格上限的抢占模式,抢占式资源实例的详细介绍请参见抢占式实例概述。
使用抢占式资源的最大优势在于价格便宜,其价格随市场和库存的供需关系实时变化,相对于公共资源组按量付费的普通实例,价格有较大的优惠。同时抢占式实例也分为有保护期实例与无保护期实例,价格从低到高顺序为:
无保护期价格 < 有保护期价格 < 普通实例
说明 抢占式实例受库存和市场价格的影响,可能被释放回收,如果被释放,EAS会重新根据配置文件中的资源规格重新进行遍历,拉起当前指定的最高优资源。
如何才能购买到抢占式实例
在配置部署服务时,您可以在配置文件中指定是否使用抢占式实例,并设置抢占实例时的出价上限。后续在部署EAS服务时,会根据配置文件的配置结果,自动竞价抢占资源。
当满足如下条件时可成功抢占资源:
抢占式资源实例库存充足。
您配置的出价上限不低于当前抢占式实例的市场价。
使用抢占式实例
成功抢占到抢占式资源后,默认至少可以使用1小时,即抢占成功后有1小时的保护期,保护期内可以保障您可以使用资源。
超过1小时的保护期后,如果抢占式资源实例库存充足,且您之前设置出价上限不低于当前抢占式实例市场价,您也可以继续使用抢占式实例。
如果不满足上述条件,超过1小时的保护期后,您的抢占资源实例可能会被释放。
释放抢占式实例
抢占式实例计费
抢占式实例为按量计费的计费模式,按照实时的市场价进行计费。
多实例部署时,实例使用顺序
创建或更新服务时,您可以在配置文件中同时配置多个实例规格,例如同时配置了抢占式资源实例和普通实例,后续实际部署时会根据配置文件中的实例顺序依次使用实例,当实例规格竞价失败或库存不足时,按照配置顺序依次使用下一个实例规格。
前提条件
如果您使用本地客户端方式使用抢占式实例,则需要完成以下操作:
已下载EASCMD客户端工具并认证成功,具体操作,请参见下载并认证客户端。
创建服务时使用抢占式实例
通过控制台创建服务使用抢占式实例
进入部署服务页面,详情请参见服务部署:控制台。
在部署服务页面,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台。
参数 | 描述 |
资源组种类 | 选择公共资源组。 |
资源配置方法 | 选择高级资源配置。 |
抢占型保留时长 | 支持以下两种配置方式: |
部署资源 | |
单击部署。待服务状态变为运行中时,表明服务部署成功。
通过本地客户端创建服务使用抢占式实例
以Windows 64版本为例:
在客户端文件所在目录新建JSON格式的文件,命名为service.json
,文件内容示例如下。
{
"name": "service_example",
"model_path": "http://examplebucket.aliyuncs.com/models%2Fmnist_saved_model.tar.gz",
"processor": "tensorflow_cpu_1.12",
"metadata": {
"instance": 1,
}
"cloud": {
"computing": {
"instances": [
{"type": "ecs.g7.2xlarge", "spot_price_limit": 2.00},
{"type": "ecs.g7.4xlarge", "spot_price_limit": 4.00},
{"type": "ecs.g7.2xlarge"},
{"type": "ecs.g7.4xlarge"}
],
"disable_spot_protection_period": true
}
}
}
其中关键参数说明如下,其他参数说明,详情请参见命令使用说明。
参数 | 描述 |
instance | 服务启动的实例数量。上述JSON文件中表示启动1个实例。 |
instances | 表示允许的实例规格,支持配置多个。当实例规格竞价失败或库存不足时,按照配置顺序依次尝试使用下一个实例规格创建服务。 type:表示配置的实例规格。 spot_price_limit为可选参数:
|
disable_spot_protection_period | 支持以下取值: |
打开终端工具,在JSON文件所在目录,使用以下命令创建服务。
eascmdwin64.exe create <service.json>
其中:<service.json>需要替换为您创建的JSON文件名称。
修改服务配置使用抢占式实例
通过本地客户端修改服务配置使用抢占式实例
以Windows 64版本为例:
在客户端文件所在目录新建JSON格式的文件,命名为instances.json
,文件内容示例如下。
{
"cloud": {
"computing": {
"instances": [
{"type": "ecs.g7.2xlarge", "spot_price_limit": 2.00},
{"type": "ecs.g7.4xlarge", "spot_price_limit": 4.00},
{"type": "ecs.g7.2xlarge"},
{"type": "ecs.g7.4xlarge"}
],
"disable_spot_protection_period": true
}
}
}
其中关键参数说明,详情请参见部署服务时使用抢占式实例。
打开终端工具,在JSON文件所在目录,使用以下命令修改EAS服务使用抢占式资源实例。
eascmdwin64.exe modify <service_name> -s <instances.json>
其中:<service_name>需要替换为EAS服务名称;<instances.json>需要替换为新建的JSON文件名称。