全部產品
Search
文件中心

Platform For AI:搶佔型執行個體選擇

更新時間:Nov 21, 2024

EAS提供了公用資源群組和專屬資源群組,當您使用公用資源群組部署EAS服務時,您可以選用搶佔式資源執行個體,降低運行成本。本文為您介紹如何配置EAS服務使用搶佔式資源執行個體。

背景資訊

  • 搶佔式執行個體簡介

    EAS支援部署服務時選擇使用成本更低的搶佔式資源執行個體(Spot Instance),EAS使用的是指定價格上限的搶佔模式,搶佔式資源執行個體的詳細介紹請參見搶佔式執行個體概述

    使用搶佔式資源的最大優勢在於價格便宜,其價格隨市場和庫存的供需關係即時變化,相對於公用資源群組隨用隨付的普通執行個體,價格有較大的優惠。同時搶佔式執行個體也分為有保護期執行個體與無保護期執行個體,價格從低到高順序為:

    無保護期價格 < 有保護期價格 < 普通執行個體
    說明

    搶佔式執行個體受庫存和市場價格的影響,可能被釋放回收,如果被釋放,EAS會根據設定檔中的資源規格重新進行遍曆,拉起當前指定的最高優先順序資源。

  • 如何才能購買到搶佔式執行個體

    在配置部署服務時,您可以在設定檔中指定是否使用搶佔式執行個體,並設定搶佔執行個體時的出價上限。後續在部署EAS服務時,會根據設定檔的配置結果,自動競價搶佔資源。

    當滿足如下條件時可成功搶佔資源:

    • 搶佔式資源執行個體庫存充足。

    • 您配置的出價上限不低於當前搶佔式執行個體的市場價。

  • 使用搶佔式執行個體

    • 成功搶佔到搶佔式資源後,預設至少可以使用1小時,即搶佔成功後有1小時的保護期,保護期內可以保障您能夠使用資源。

    • 超過1小時的保護期後,如果搶佔式資源執行個體庫存充足,且您之前設定出價上限不低於當前搶佔式執行個體市場價,您也可以繼續使用搶佔式執行個體。

      如果不滿足上述條件,超過1小時的保護期後,您的搶佔資源執行個體可能會被釋放。

  • 釋放搶佔式執行個體

    • 超出1小時保護期,搶佔式資源執行個體庫存不足。

    • 超出1小時保護期,您設定的出價上限低於當前搶佔式執行個體市場價。

    • 無保護期,搶佔式資源執行個體庫存不足或您設定的出價上限低於當前搶佔式執行個體市場價。

  • 搶佔式執行個體計費

    搶佔式執行個體為隨用隨付的計費模式,按照即時的市場價進行計費。

  • 多執行個體部署時,執行個體使用順序

    建立或更新服務時,您可以在設定檔中同時配置多個執行個體規格,例如同時配置了搶佔式資源執行個體和普通執行個體,後續實際部署時會根據設定檔中的執行個體順序依次使用執行個體,當執行個體規格競價失敗或庫存不足時,按照配置順序依次使用下一個執行個體規格。

前提條件

如果您使用本地用戶端方式使用搶佔式執行個體,則需要下載EASCMD用戶端工具並認證成功,具體操作,請參見下載並認證用戶端

建立服務時使用搶佔式執行個體

通過控制台建立服務使用搶佔式執行個體

  1. 進入建立服務頁面,詳情請參見服務部署:控制台

  2. 建立服務頁面,配置以下關鍵參數,其他參數配置詳情,請參見服務部署:控制台image

    參數

    描述

    資源群組種類

    選擇公用資源群組

    資源配置方法

    選擇性價比資源配置

    搶佔型保留時間長度

    支援以下兩種配置方式:

    • 設定執行個體使用1小時:您可以為搶佔型執行個體設定1小時保護期,即執行個體搶佔成功後,預設至少可以使用1小時。

    • 無確定保護期:表示禁用保護期。

    部署資源

    • 資源類型:選擇搶佔型

    • 機器型號:選擇合適的機器型號。

    • 出價:設定出價用來自動競價搶佔資源。

      如果搶佔式資源執行個體庫存充足,且出價不低於當前搶佔式執行個體市場價,可以使用搶佔式執行個體。

    • 配置多規格執行個體

      您可以單擊image..png來配置多個搶佔型執行個體,最多支援添加5個資源類型。配置多個執行個體時,執行個體的生效邏輯請參見多規格執行個體選擇

      說明

      建議您同時配置常規型執行個體,避免搶佔型執行個體搶佔失敗導致服務部署失敗。

  3. 單擊部署。待服務狀態變為運行中時,表明服務部署成功。

通過本地用戶端建立服務使用搶佔式執行個體

  1. 下載並認證用戶端,以Windows 64版本為例。

  2. 在用戶端檔案所在目錄建立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為選擇性參數:

      • 當配置該參數時:表示對應執行個體規格使用搶佔式資源執行個體,並指明價格上限。單位為USD,支援隨用隨付。

      • 當不配置該參數時:表示對應執行個體規格為普通的隨用隨付執行個體。

    disable_spot_protection_period

    支援以下取值:

    • false(預設值):表示在搶佔式資源執行個體建立成功後,預設有1小時保護期。在保護期內即使市場價格超過了出價,執行個體也不會被釋放。

    • true:表示禁用保護期,無保護期執行個體會始終比有保護期執行個體優惠10%左右。

  3. 開啟終端工具,在JSON檔案所在目錄,使用以下命令建立服務。更多操作說明,請參見命令使用說明

    eascmdwin64.exe create <service.json>

    其中:<service.json>需要替換為您建立的JSON檔案名稱。

修改服務配置使用搶佔式執行個體

通過控制台修改服務配置使用搶佔式執行個體

  1. 開啟服務資源配置對話方塊,具體操作,請參見通過控制台修改服務使用多規格執行個體

  2. 性價比資源配置頁簽,設定搶佔型保留時間長度,添加搶佔型資源類型,並單擊確定

    說明

    建議您同時配置常規型執行個體,避免搶佔型執行個體搶佔失敗導致服務運行失敗。

    image

    其他參數配置方法,請參見通過控制台建立服務使用搶佔式執行個體

通過本地用戶端修改服務配置使用搶佔式執行個體

  1. 下載並認證用戶端,以Windows 64版本為例。

  2. 在用戶端檔案所在目錄建立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
        }
      }
    }

    其中關鍵參數說明,詳情請參見部署服務時使用搶佔式執行個體

  3. 開啟終端工具,在JSON檔案所在目錄,使用以下命令修改EAS服務使用搶佔式資源執行個體。更多操作說明,請參見命令使用說明

    eascmdwin64.exe modify <service_name> -s <instances.json>

    其中:<service_name>需要替換為EAS服務名稱;<instances.json>需要替換為建立的JSON檔案名稱。

相關文檔