全部產品
Search
文件中心

Platform For AI:自動擴縮容

更新時間:Jul 13, 2024

系統可以通過監控隊列中積壓的資料數量來實現推理服務的自動擴縮容,從而有效地控制推理服務執行個體的數量。本文為您介紹如何為推理服務配置自動擴縮容。

實現原理

在非同步推理情境中,系統可以根據隊列的狀態動態地對推理服務的執行個體數量進行伸縮,並且支援在隊列為空白時將推理服務的執行個體數縮容到0以進一步降低成本。非同步推理服務自動擴縮容的原理示意圖如下:

為非同步推理服務配置自動擴縮容

您可以登入eascmd用戶端後,使用以下命令開啟非同步推理服務的Auto Scaling功能。如何登入eascmd用戶端,詳情請參見下載並認證用戶端

  • 命令格式

    eascmd autoscale <service_name> -Dmin=[attr_value] -Dmax=[attr_value] -Dstrategies.queue[avgbacklog]=[attr_value]

    其中:

    • queue[avgbacklog]:判斷推理服務觸發自動調整的獨立指標,表示隊列中等待推理服務中的每個執行個體處理的請求數。

    • <service_name>:非同步推理服務名稱。

  • 使用樣本

    eascmd autoscale pmmlasync -Dmin=0 -Dmax=10 -Dstrategies.queue[avgbacklog]=10

    其中:

    • queue[avgbacklog]=10:表示推理服務中每個執行個體最多能處理10個請求。

    • max=10:表示推理服務的執行個體個數最多能擴容到10個。

    • min=0:表示推理服務的執行個體個數最多能縮容到0個。

    如果推理服務的執行個體個數為3,當隊列中堆積的請求數超過30(即30/3大於10)時,開始擴容,推理服務的執行個體數最多擴容到10個。當隊列中堆積的請求數小於且等於30個時,開始縮容。當隊列中的請求長度為空白時,支援將推理服務的執行個體數完全縮容到0,此時佇列服務會持續運行。當請求資料重新被發送到佇列服務中時,則會觸發擴容。

您可以使用以下命令,配置擴容和縮容的等待時間。

  • 命令格式

    eascmd autoscale <service_name> -Dbehavior.<attr_name>.stabilizationWindowSeconds=<attr_value>

    其中:

    • <service_name>:非同步推理服務名稱。

    • <attr_name>:取值為scaleDown(表示縮容)或scaleUp(表示擴容)。

    • <attr_value>:參數值,表示配置的等待時間,INT類型,單位為秒。

      縮容時,該參數值預設為300秒。該值不宜配置過小,避免因指標波動較大導致頻繁觸發縮容。

      擴容時,該參數值預設為0秒。通常在指標超過閾值時,儘可能快地進行擴容,避免因資源不足影響業務,可根據實際情況進行配置。

  • 使用樣本

    • 配置縮容等待時間

      eascmd autoscale pmmlasync -Dbehavior.scaleDown.stabilizationWindowSeconds=100

      表示在指標值達到縮容閾值時,等待100秒進行縮容。

    • 配置擴容等待時間

      eascmd autoscale pmmlasync -Dbehavior.scaleUp.stabilizationWindowSeconds=100

      表示在指標值達到擴容閾值時,等待100秒進行擴容。

您也可以通過設定檔,同時配置擴容和縮容的等待時間。

  • 命令格式

    eascmd autoscale <service_name> -s <scale.json>

    其中:

    • <service_name>:非同步推理服務名稱。

    • <scale.json>:設定檔。檔案內容樣本如下。

      {
        "behavior": {
          "scaleUp": {
            "stabilizationWindowSeconds": 20
          },
          "scaleDown": {
            "stabilizationWindowSeconds": 150
          }
        }
      }
  • 使用樣本

    eascmd autoscale pmmlasync -s scale.json

    表示在指標值達到擴容閾值時,等待20秒進行擴容;在指標達到縮容閾值時,等待150秒進行縮容。