全部產品
Search
文件中心

Platform For AI:水平自動擴縮容功能

更新時間:Jan 17, 2026

面對業務流量的波峰波穀,手動管理副本效率低下,且響應不及時,可能導致服務過載或資源閑置。EAS 水平自動擴縮容功能可根據即時業務負載自動調整副本數量,在保障服務穩定性的同時最大化資源使用率,實現成本與效能的最佳平衡。

工作原理

水平自動擴縮容功能基於設定的指標閾值動態調整副本數。

  • 計算目標副本數:目標副本數(desiredReplicas)由當前副本數(currentReplicas)、當前指標值(currentMetricValue)與閾值(desiredMetricValue)的比值共同決定。

    • 公式desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

    • 樣本:假設當前2個副本,单实例QPS伸缩阈值設定為10。當副本平均QPS量上升至23時,目標副本個數為5 = ceil[2 * (23/10)];後續副本平均 QPS 降至2,則目標副本個數為1 = ceil[5 * (2/10)]。縮容過程相對平滑,避免因請求波動引起異常縮容。

    • 配置多指標:系統會為每個指標計算期望的副本數,並取其中的最大值作為最終目標副本數。

  • 觸發邏輯:當計算出的目標副本數大於當前副本數,系統即觸發擴容。當計算出的目標副本數小於當前副本數,系統才會觸發縮容

    重要

    為避免因指標波動導致頻繁擴縮容,系統對閾值設定了 10% 的容忍區間。例如,當您將 QPS 閾值設為 10 時,實際觸發擴容的條件通常為 QPS 持續高於 11(即 10 × 1.1)。這意味著:

    • 若 QPS 在 10–11 之間短暫波動,系統可能不會立即擴容;

    • 只有當 QPS 持續穩定在 11–12 或更高時,才會觸發擴容操作。

    該機制有助於減少不必要的資源變動,提升系統穩定性與成本效益。

  • 延遲生效:擴縮容操作支援延遲生效機制,避免因短暫流量波動導致頻繁伸縮。

操作指南

可以通過控制台或用戶端(eascmd)來配置水平自動擴縮容策略。

開啟/更新水平自動擴縮容功能

通過控制台

  1. 登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS

  2. 在服務列表中,單擊目標服務名稱,進入服務詳情頁面。

  3. 切換到自动伸缩頁簽,在弹性伸缩地區,單擊开启弹性伸缩更新

    imageimage

  4. 自动弹性扩缩容设置對話方塊,參考以下參數說明配置。

參數說明
  • 基礎配置

    參數

    說明

    設定建議與風險提示

    最小副本数

    服務副本自動縮容的下限數量,最小值為0。

    生產環境建議:對於需要持續線上的服務,強烈建議將此值設定為 1 或更高

    重要

    設定為 0 意味著在無流量時服務副本將被完全回收。此時新請求將面臨完整的冷啟動延遲(可能長達數十秒至數分鐘),期間服務不可用。此外,使用專屬網關的服務不支援將此值設為 0

    最大副本数

    服務副本自動擴容的上限數量。最大為 1000。

    請根據業務峰值預估和賬戶配額合理設定,以防意外的流量高峰導致費用超出預算。

    常规扩缩容指标

    用於觸發擴縮容的內建效能指標。

    • 单实例QPS伸缩阈值:建議基於壓測結果設定,通常為單副本最優效能的 70%-80%。

      重要

      如需將單副本QPS閾值設定為小數,請通過用戶端(eascmd)設定qps1k欄位。

    • CPU利用率阈值:過低易浪費資源,過高可能影響請求延遲。建議根據RT指標來設定。

    • GPU利用率阈值:建議根據RT指標來設定。

    • 异步队列长度:僅適用於非同步服務。建議根據任務平均處理時間長度和可接受的延遲來設定。更多請參見非同步推理服務配置水平自動擴縮容

    自定义扩缩容指标

    可以上報自訂指標並據此進行擴縮容,詳情請參見自訂監控及擴縮容指標

    適用於內建指標無法滿足業務需求的複雜情境。

  • 進階配置

    參數

    說明

    設定建議與風險提示

    扩容生效时长

    擴容決策的觀察視窗。觸發擴容後,系統會在此段時間內觀察指標,若指標值回落至閾值以下,則取消本次擴容。單位為秒。

    預設值為 0 秒,即立即執行擴容。適當增加此值(如 60 秒)可避免因瞬時毛刺流量引發不必要的擴容。

    缩容生效时长

    縮容決策的觀察視窗,是防止服務抖動的關鍵參數。系統會確認指標值在此段時間內持續低於閾值後,才執行縮容。單位為秒。

    預設值為 300 秒。此值是防止服務因流量波動而頻繁縮容的核心保障。不建議設定過小,以免影響服務穩定性。

    缩容到0的生效时长

    最小副本数設為 0 時,此參數定義了從滿足縮容條件到副本數縮減至 0 的等待時間。

    用於延遲服務徹底下線的時間,為可能的流量恢複提供緩衝。

    从0扩容的副本数

    服務從 0 個副本冷啟動時,一次性擴容到的副本數量。

    建議設定為一個能應對初始流量衝擊的合理值,以縮短冷啟動期間的服務不可用時間。

通過用戶端

在執行命令前,請確保已完成下載並認證用戶端。開啟與更新使用相同的autoscale命令。可以通過命令的-D參數或JSON設定檔來設定策略。

  • 參數形式

    # 格式:eascmd autoscale [region]/[service_name] -D[attr_name]=[attr_value]
    # 樣本:設定最小2個副本,最大5個副本,QPS閾值為10
    eascmd autoscale cn-shanghai/test_autoscaler -Dmin=2 -Dmax=5 -Dstrategies.qps=10
    # 樣本:設定縮容生效時間長度為100秒
    eascmd autoscale cn-shanghai/test_autoscaler -Dbehavior.scaleDown.stabilizationWindowSeconds=100
  • 設定檔形式

    # 步驟1: 建立設定檔(例如 scaler.json)
    # 步驟2: 執行命令 eascmd autoscale [region]/[service_name] -s [desc_json]
    # 樣本
    eascmd autoscale cn-shanghai/test_autoscaler -s scaler.json
配置樣本

以下是一個包含常用配置項的 scaler.json 樣本:

scaler.json

{
    "min": 1,
    "max": 2,
    "behavior": {
        "onZero": {
            "interceptTraffic": false,
            "scaleDownGracePeriodSeconds": 700,
            "scaleUpActivationReplicas": 2
        },
        "scaleDown": {
            "stabilizationWindowSeconds": 20
        },
        "scaleUp": {
            "stabilizationWindowSeconds": 10
        }
    },
    "scaleStrategies": [
        {
            "metricName": "queue[backlog]",
            "threshold": 10
        },
        {
            "metricName": "qps",
            "threshold": 1
        },
        {
            "metricName": "cpu",
            "threshold": 80
        },
        {
            "metricName": "gpu[util]",
            "threshold": 60
        }
    ]
}
參數說明

參數

說明

min

最小副本數

max

最大副本數

scaleStrategies

擴縮容指標及閾值。

  • qps:单实例QPS伸缩阈值

    重要

    单实例QPS伸缩阈值指標支援設定為小數,最多支援小數點後2位,例如1.25。如需設定為小數,請使用欄位qps1k。例如,設定qps1k為1250表示單副本的平均QPS大於1.25時會觸發擴容。配置樣本如下:

    {
        "min": 1,
        "max": 2,
        "scaleStrategies": [
            {
                "metricName": "qps1k",
                "threshold": 1250
            }
        ]
    }
  • cpu:CPU利用率閾值

  • gpu[util]:GPU利用率阈值

  • queue[backlog]:异步队列长度

behavior.scaleUp.stabilizationWindowSeconds

對應控制台的擴容生效時間長度

behavior.scaleDown.stabilizationWindowSeconds

對應控制台的縮容生效時間長度

關閉水平自動擴縮容功能

通過用戶端

  • 命令格式

    eascmd autoscale rm [region]/[service_name]
  • 使用樣本

    eascmd autoscale rm cn-shanghai/test_autoscaler

生產應用建議

情境化配置指南

  • CPU 密集型線上推理服務:建議同時配置CPU利用率閾值單副本QPS伸縮閾值。 CPU利用率反映資源消耗, QPS反映業務負載,二者結合可實現更精準的擴縮容。

  • GPU 密集型線上推理服務:建議主要關注GPU利用率。當 GPU 計算單元飽和時,及時擴容以處理更多並發任務。

  • 非同步任務處理服務:建議使用异步队列长度作為核心指標。當隊列中積壓的任務數超過閾值時,擴容副本可提高整體處理能力,縮短任務等待時間。

穩定性最佳實務

  • 避免縮容到零:對於生產環境的同步服務,請務必將最小副本数設定為 1 或更高,以保證服務的持續可用性和低延遲。

  • 合理設定冷靜期:使用縮容生效時間長度可防止因流量正常波動導致的服務抖動。預設值 300 秒適用於大多數情境。

常見問題

為什麼服務達到了閾值卻沒有擴容?

可能的原因包括:

  • 配額不足:您賬戶下當前地區的可用資源配額(如 vCPU、GPU)已用盡。

  • 處於擴容冷靜期:如果配置了擴容生效時間長度,系統會等待該時間段結束,以確認流量增長的持久性。

  • 副本健全狀態檢查失敗:新擴容的副本未能通過健全狀態檢查,導致擴容操作失敗。

  • 已達最大副本數:當前副本數已達到您設定的最大副本数上限。

為什麼服務會頻繁擴容和縮容(抖動)?

主要原因通常是擴縮容策略配置不當:

  • 閾值設定過于敏感:閾值設定得太接近常規負載水平,導致微小波動即可觸發擴縮容。

  • 縮容生效時間長度過短:過短的冷靜期使系統對流量的短暫下降反應過度,導致不必要的縮容。當流量恢複後,又會立即觸發擴容。建議適當延長縮容生效時間長度

相關文檔