在部署服務時,只指定單一規格的計算資源,會出現由於該規格庫存不足導致服務長時間無法拉起的情況。針對該問題,EAS部署環節支援多規格執行個體選擇,通過遍曆設定檔中提供的規格列表來拉起資源,從而極大降低單一規格庫存不足帶來的部署風險。本文為您介紹多規格執行個體配置方法。
前提條件
如果您使用本地用戶端方式配置多規格執行個體,則需要完成以下操作:
已下載EASCMD用戶端並認證成功,具體操作,請參見下載並認證用戶端。
使用限制
僅支援部署在公用資源群組上的EAS服務配置多規格執行個體。
如何使用多規格執行個體
您可以在建立服務時配置多規格執行個體,也可以對已有的服務直接更新來實現多規格執行個體的配置。
以下面的資源配置目標為例來介紹如何通過控制台和本地用戶端實現多規格執行個體的配置。
資源類型 | 機器型號 | 執行個體規格 | 出價 |
競價資源 | 8vcpu+16GB | ecs.c8i.2xlarge | 1 |
常規型資源 | 4vcpu+8GB | ecs.c8i.xlarge | 不需要 |
通過控制台配置多規格執行個體
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
建立服務:在推理服務頁簽,單擊部署服務,選擇自訂模型部署> 自訂部署。
更新服務:在推理服務頁簽的服務列表中找到要操作的服務,操作列單擊更新。
在資源部署地區,配置以下關鍵參數,其他參數配置詳情,請參見服務部署:控制台。
參數
描述
資源類型
選擇公用資源。
部署資源
資源規格:選擇資源規格。
競價:開啟開關,表示使用競價資源;開關關閉,表示使用常規型資源。
出價:僅競價執行個體需要設定出價,系統根據出價來自動競價搶佔資源。
如果競價執行個體庫存充足,且出價不低於當前競價執行個體市場價,可以使用競價執行個體。
配置多規格執行個體:
單擊添加按鈕來配置多規格執行個體,最多支援添加10個資源類型。系統會按照配置規格的先後順序作為優先順序排序來拉起資源。
競價型保留時間長度
當開啟競價開關時,支援配置該參數。支援以下兩種配置方式:
設定執行個體使用1小時:您可以為競價執行個體設定1小時保護期,即執行個體搶佔成功後,預設至少可以使用1小時。
無確定保護期:表示禁用保護期。不保證有固定時間長度的保護期來保障資源的使用。
關於競價執行個體的詳細介紹,請參見競價執行個體選擇。
單擊部署/更新。待服務狀態變為運行中時,表明服務部署成功。
通過本地用戶端配置多規格執行個體
準備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檔案名稱。