面對業務流量的波峰波穀,手動管理副本效率低下,且響應不及時,可能導致服務過載或資源閑置。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)來配置水平自動擴縮容策略。
開啟/更新水平自動擴縮容功能
通過控制台
登入PAI控制台,在頁面上方選擇目標地區,並在右側選擇目標工作空間,然後單擊進入EAS。
在服務列表中,單擊目標服務名稱,進入服務詳情頁面。
切換到自动伸缩頁簽,在弹性伸缩地區,單擊开启弹性伸缩或更新。


在自动弹性扩缩容设置對話方塊,參考以下參數說明配置。
參數說明
基礎配置
參數
說明
設定建議與風險提示
最小副本数
服務副本自動縮容的下限數量,最小值為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 樣本:
參數說明
參數 | 說明 |
| 最小副本數。 |
| 最大副本數。 |
| 擴縮容指標及閾值。
|
| 對應控制台的擴容生效時間長度。 |
| 對應控制台的縮容生效時間長度。 |
關閉水平自動擴縮容功能
通過用戶端
命令格式
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)已用盡。
處於擴容冷靜期:如果配置了擴容生效時間長度,系統會等待該時間段結束,以確認流量增長的持久性。
副本健全狀態檢查失敗:新擴容的副本未能通過健全狀態檢查,導致擴容操作失敗。
已達最大副本數:當前副本數已達到您設定的最大副本数上限。
為什麼服務會頻繁擴容和縮容(抖動)?
主要原因通常是擴縮容策略配置不當:
閾值設定過于敏感:閾值設定得太接近常規負載水平,導致微小波動即可觸發擴縮容。
縮容生效時間長度過短:過短的冷靜期使系統對流量的短暫下降反應過度,導致不必要的縮容。當流量恢複後,又會立即觸發擴容。建議適當延長縮容生效時間長度。
相關文檔
如需定時自動調整副本數,請參見定時自動擴縮容功能。
如需靈活調配資源應對變化需求,請參見彈性資源集區。
通過自訂監控指標監控擴縮容效果,請參見自訂監控及擴縮容指標。