在業務負載出現顯著的波峰波谷時,您可以開啟水平自動擴縮容功能。這樣,EAS服務能夠自動調整實例數量,實現動態管理線上服務的計算資源,從而保障業務平穩運行并提高資源利用率。本文介紹如何開啟、關閉和更新水平自動擴縮容功能,以及自動擴縮容過程中的目標實例個數的計算公式。
背景信息
管理水平自動擴縮容功能支持兩種方式(方式一:通過控制臺管理水平自動擴縮容功能和方式二:通過本地客戶端管理水平自動擴縮容功能)。開啟水平自動擴縮容功能后,服務如何自動計算目標實例數請參見擴縮容功能的伸縮策略說明。
方式一:通過控制臺管理水平自動擴縮容功能
開啟水平自動擴縮容功能
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。
在工作空間頁面的左側導航欄選擇模型部署>模型在線服務(EAS),進入模型在線服務(EAS)頁面。
您可以使用以下任意一種方式,打開自動彈性擴縮容設置對話框。
方式一:
在服務列表中,單擊目標服務名稱,進入服務詳情頁面。
切換到自動伸縮頁簽,在彈性伸縮區域,單擊開啟彈性伸縮。
方式二:在服務列表中,單擊目標服務操作列下的>彈性伸縮,打開自動彈性擴縮容設置對話框。
在自動彈性擴縮容設置對話框,配置以下參數。
基礎配置
參數
描述
最小實例數
自動彈性擴縮容的下界,支持設置的下限為0。
最大實例數
自動彈性擴縮容的上界,支持設置的上限為3000。
常規擴縮容指標
在下拉列表中選擇常規擴縮容指標并配置伸縮閾值:
單實例QPS伸縮閾值:當單實例的平均QPS大于伸縮閾值時會觸發擴容。
CPU利用率閾值:當單實例的平均CPU使用率大于伸縮閾值時會觸發擴容。
異步隊列長度:僅異步服務支持配置。當隊列里面的服務請求數大于伸縮閾值時會觸發擴容。
GPU利用率:當單個實例的平均GPU使用率大于伸縮閾值時會觸發擴容。
自定義擴縮容指標
自定義配置擴縮容指標和伸縮閾值。
高級配置
參數
描述
擴容生效時長
指定從擴容指令下達開始到擴容實際生效所需的時長,如果在此期間系統檢測到請求量恢復了,將會取消擴容指令。單位為秒,默認值為1秒。
縮容生效時長
指定從縮容指令下達開始到縮容實際生效所需的時長,如果在此期間系統檢測到請求量增加了,將會取消縮容指令。單位為秒,默認值為300秒。
縮容到0的生效時長
指定從縮容指令下達開始到服務實例縮容到0所需的時長。
從0擴容的實例數
服務從實例數為0開始擴容時,直接擴容到達的指定實例數量。
單擊開啟。
更新水平自動擴縮容配置信息
您可以使用以下任意一種方式,打開自動彈性擴縮容設置對話框。
方式一:在自動伸縮頁簽的彈性伸縮區域,單擊更新。
方式二:在服務列表中,單擊目標服務操作列下的>彈性伸縮,打開自動彈性擴縮容設置對話框。
在自動彈性擴縮容設置對話框,修改相關配置信息。
單擊更新。
關閉水平自動擴縮容功能
在自動伸縮頁簽的彈性伸縮區域,單擊關閉彈性伸縮。
在確定關閉彈性伸縮對話框,單擊確定。
方式二:通過本地客戶端管理水平自動擴縮容功能
開啟或更新水平自動擴縮容功能
創建服務之后,默認不開啟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水平自動擴縮容后的資源利用率,請參見自定義監控及擴縮容指標。