在部署服务时,只指定单一规格的计算资源,会出现由于该规格库存不足导致服务长时间无法拉起的情况。针对该问题,EAS部署环节支持多规格实例选择,通过遍历配置文件中提供的规格列表来拉起资源,从而极大降低单一规格库存不足带来的部署风险。本文为您介绍多规格实例配置方法。
前提条件
如果您使用本地客户端方式配置多规格实例,则需要完成以下操作:
已下载EASCMD客户端并认证成功,具体操作,请参见下载并认证客户端。
使用限制
仅支持部署在公共资源组上的EAS服务配置多规格实例。
如何使用多规格实例
您可以在新建服务时配置多规格实例,也可以对已有的服务直接更新来实现多规格实例的配置。
以下面的资源配置目标为例来介绍如何通过控制台和本地客户端实现多规格实例的配置。
资源类型 | 机器型号 | 实例规格 | 出价 |
抢占型 | 8vcpu+16GB | ecs.c8i.2xlarge | 1 |
常规型 | 4vcpu+8GB | ecs.c8i.xlarge | 不需要 |
通过控制台配置多规格实例
登录PAI控制台,左侧导航栏选择模型部署 > 模型在线服务(EAS),如果有多个工作空间,选择待操作的工作空间名称进入EAS。
新建服务:在推理服务页签,单击部署服务,选择自定义模型部署 > 自定义部署。
更新服务:在推理服务页签的服务列表中找到要操作的服务,操作列单击更新。
在资源部署信息模块,配置以下关键参数,其他参数配置详情,请参见服务部署:控制台。
参数
描述
资源组种类
选择公共资源组。
资源配置方法
选择性价比资源配置。
抢占型保留时长
仅资源类型选择抢占型时,该配置生效。支持以下两种配置方式:
设定实例使用1小时:您可以为抢占型实例设置1小时保护期,即实例抢占成功后,默认至少可以使用1小时。
无确定保护期:表示禁用保护期。不保证有固定时长的保护期来保障资源的使用。
关于抢占型实例的详细介绍,请参见高级配置:抢占型实例选择。
部署资源
资源类型:支持抢占型和常规型。
机器型号:选择合适的机器型号。
出价:仅抢占型资源需要设置出价,系统根据出价来自动竞价抢占资源。
如果抢占式资源实例库存充足,且出价不低于当前抢占式实例市场价,可以使用抢占式实例。
配置多规格实例:
您可以单击来配置多规格实例,最多支持添加5个资源类型。系统会按照配置规格的先后顺序作为优先级排序来拉起资源。
单击部署/更新。待服务状态变为运行中时,表明服务部署成功。
通过本地客户端配置多规格实例
准备JSON格式的文件,命名为
service.json
,文件内容示例如下。{ "name": "service_name", "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.c8i.2xlarge", "spot_price_limit": 1 }, { "type": "ecs.c8i.xlarge" } ], "disable_spot_protection_period": false } } }
其中关键参数说明如下。其他参数说明,详情请参见命令使用说明。
参数
描述
instance
服务启动的实例数量。上述JSON文件中表示启动1个实例。
instances
表示允许的实例规格,支持配置多个。当实例规格竞价失败或库存不足时,按照配置顺序依次尝试使用下一个实例规格创建服务。
type:表示配置的实例规格。
spot_price_limit为可选参数:
当配置该参数时:表示对应实例规格使用抢占式资源实例,并指明价格上限。单位为USD,支持按量付费。
当不配置该参数时:表示对应实例规格为普通的按量付费实例。
disable_spot_protection_period
支持以下取值:
false(默认值):表示在抢占式资源实例创建成功后,默认有1小时保护期。在保护期内即使市场价格超过了出价,实例也不会被释放。
true:表示禁用保护期,无保护期实例会始终比有保护期实例优惠10%左右。
打开终端工具,在JSON文件所在目录,执行以下命令。更多操作说明,请参见命令使用说明。
以Windows 64版本为例:
新建服务
eascmdwin64.exe create <service.json>
其中:<service.json>需要替换为您创建的JSON文件名称。
更新服务
eascmdwin64.exe modify <service_name> -s <service.json>
其中:
<service_name>需要替换为要更新的EAS服务名称。
<service.json>需要替换为您创建的JSON文件名称。