在業務負載出現顯著的波峰波穀時,您可以開啟水平自動擴縮容功能。這樣,EAS服務能夠自動調整執行個體數量,實現動態管理線上服務的計算資源,從而保障業務平穩運行並提高資源使用率。本文介紹如何開啟、關閉和更新水平自動擴縮容功能,以及自動擴縮容過程中的目標執行個體個數的計算公式。
背景資訊
管理水平自動擴縮容功能支援兩種方式(方式一:通過控制台管理水平自動擴縮容功能和方式二:通過本地用戶端管理水平自動擴縮容功能)。開啟水平自動擴縮容功能後,服務如何自動計算目標執行個體數請參見擴縮容功能的伸縮策略說明。
方式一:通過控制台管理水平自動擴縮容功能
開啟水平自動擴縮容功能
登入PAI控制台。
在左側導覽列單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。
在工作空間頁面的左側導覽列選擇模型部署>模型線上服務(EAS),進入模型線上服務(EAS)頁面。
您可以使用以下任意一種方式,開啟自動彈性擴縮容設定對話方塊。
方式一:
在服務列表中,單擊目標服務名稱,進入服務詳情頁面。
切換到自動調整頁簽,在Auto Scaling地區,單擊開啟Auto Scaling。
方式二:在服務列表中,單擊目標服務作業列下的>Auto Scaling,開啟自動彈性擴縮容設定對話方塊。
在自動彈性擴縮容設定對話方塊,配置以下參數。
基礎配置
參數
描述
最小執行個體數
自動彈性擴縮容的下界,支援設定的下限為0。
最大執行個體數
自動彈性擴縮容的上界,支援設定的上限為3000。
常規擴縮容指標
在下拉式清單中選擇常規擴縮容指標並配置伸縮閾值:
單一實例QPS伸縮閾值:當單一實例的平均QPS大於伸縮閾值時會觸發擴容。
CPU利用率閾值:當單一實例的平均CPU使用率大於伸縮閾值時會觸發擴容。
非同步隊列長度:僅非同步服務支援配置。當隊列裡面的服務要求數大於伸縮閾值時會觸發擴容。
GPU利用率:當單個執行個體的平均GPU使用率大於伸縮閾值時會觸發擴容。
自訂擴縮容指標
自訂配置擴縮容指標和伸縮閾值。
進階配置
參數
描述
擴容生效時間長度
指定從擴容指令下達開始到擴容實際生效所需的時間長度,如果在此期間系統檢測到請求量恢複了,將會取消擴容指令。單位為秒,預設值為1秒。
縮容生效時間長度
指定從縮容指令下達開始到縮容實際生效所需的時間長度,如果在此期間系統檢測到請求量增加了,將會取消縮容指令。單位為秒,預設值為300秒。
縮容到0的生效時間長度
指定從縮容指令下達開始到服務執行個體縮容到0所需的時間長度。
從0擴容的執行個體數
服務從執行個體數為0開始擴容時,直接擴容到達的指定執行個體數量。
單擊開啟。
更新水平自動擴縮容配置資訊
您可以使用以下任意一種方式,開啟自動彈性擴縮容設定對話方塊。
方式一:在自動調整頁簽的Auto Scaling地區,單擊更新。
方式二:在服務列表中,單擊目標服務作業列下的>Auto Scaling,開啟自動彈性擴縮容設定對話方塊。
在自動彈性擴縮容設定對話方塊,修改相關配置資訊。
單擊更新。
關閉水平自動擴縮容功能
在自動調整頁簽的Auto Scaling地區,單擊關閉Auto Scaling。
在確定關閉Auto Scaling對話方塊,單擊確定。
方式二:通過本地用戶端管理水平自動擴縮容功能
開啟或更新水平自動擴縮容功能
建立服務之後,預設不開啟Autoscaling(水平自動擴縮容)功能。您可以登入eascmd用戶端後使用autoscale子命令開啟Autoscaling功能。如何登入eascmd用戶端,請參見下載並認證用戶端。開啟和更新Autoscaling功能策略方式相同,均支援使用以下兩種方式:
參數形式(推薦)
命令格式
eascmd autoscale [region]/[service_name] -D[attr_name]=[attr_value]
使用樣本
eascmd autoscale cn-shanghai/test_autoscaler -Dmin=2 -Dmax=5 -Dstrategies.qps=10
配置形式
命令格式
eascmd autoscale [region]/[service_name] -s [desc_json]
Autoscaling功能通過配置desc_json來控制伸縮策略,desc_json參數配置樣本如下。
{ "min": 2, "max": 5, "strategies": { "qps": 10 } }
參數
描述
min
最小執行個體個數,min需要大於0。
說明即使按伸縮指標計算後所需的執行個體數小於min,服務執行個體也不會小於min值。
max
最大執行個體個數,max最大值為300。
說明即便按伸縮指標計算後所需的執行個體數多於max,服務執行個體也不會多於max值。
strategies
根據業務使用情境,您可以選擇qps、cpu定義伸縮策略:
qps:單一實例的QPS伸縮閾值,當單一實例的平均QPS大於該值時會觸發擴容。
cpu:單一實例的CPU使用率閾值,取值範圍(0,100),當單一實例的平均CPU使用率大於該值時會觸發擴容。
使用樣本
eascmd autoscale cn-shanghai/test_autoscaler -s scaler.json
關閉水平自動擴縮容功能
命令格式
eascmd autoscale rm [region]/[service_name]
使用樣本
eascmd autoscale rm cn-shanghai/test_autoscaler
擴縮容功能的伸縮策略說明
自動調整過程中目標執行個體個數的計算公式
desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]
參數說明
desiredReplicas:目標執行個體個數。
currentReplicas:當前執行個體個數。
currentMetricValue:當前的伸縮指標均值。
desiredMetricValue:期望的伸縮指標的均值。
使用樣本
以QPS伸縮為例,您部署服務時壓測或預估單一實例能夠承載的QPS量為10,將單一實例的QPS伸縮閾值(strategies.qps)設定為10。當每個執行個體平均QPS量增加至23時,執行個體個數為2。根據公式計算目標執行個體個數為5:
ceil[2 * (23/10)] = 5
。若單一實例承載的QPS量下降至10,即每個執行個體平均QPS量為2。根據公式計算目標執行個體個數為1:
ceil[5 * (2/10)] =1
。此時執行個體個數會逐步縮容至1,縮容過程相對平滑一些,避免因請求波動引起異常縮容。
相關文檔
如果您需要定時將執行個體數自動擴縮容到指定數量,請參見定時自動擴縮容功能。
如果您需要靈活地配置和重新設定資源,以滿足不斷變化的需求,請參見彈性資源集區。
通過自訂監控指標來觀察EAS水平自動擴縮容後的資源使用率,請參見自訂監控及擴縮容指標。