ECS執行個體的CPU使用率異常升高會影響其上啟動並執行應用程式效能,繼而導致應用運行緩慢或停止回應。為了快速恢複,您可以重啟ECS執行個體以降低CPU使用率,減輕對應用的影響。OOS提供警示觸發功能,支援在檢測到CPU使用率過高時自動重啟執行個體,從而實現自動化處理,無需人工幹預。本文介紹如何通過配置CPU使用率警示,並在超過閾值時自動重啟ECS執行個體,以快速恢複服務效能。
前期準備
您需要為CloudOps Orchestration Service準備一個擁有重啟ECS許可權的RAM角色。
定義一個自訂權限原則,包含重啟執行個體
ecs:RebootInstance和查詢執行個體ecs:DescribeInstances的操作許可權,詳細步驟,請參見建立自訂權限原則。建立一個普通服務角色,並指定CloudOps Orchestration Service為受信服務。選擇受信服務的詳細步驟,請參見建立可信實體為阿里雲服務的RAM角色。
將自訂的權限原則授予新建立的服務角色,這樣角色就具備了執行所需操作的許可權,詳細步驟,請參見為RAM角色授權。
操作步驟
在警示與事件營運頁面,單擊建立,選擇閾值警示。

在觸發規則填寫規則與執行個體。

選擇模板,模板類型選擇公用模板,並選擇大量重啟ECS執行個體模板ACS-ECS-BulkyRebootInstances。

地區ID、目標執行個體、任務執行的並發比率保留預設,許可權選擇擁有重啟ECS許可權的RAM角色。

單擊建立,彈出對話方塊內單擊確認,完成設定。
驗證結果
本文通過開源壓測工具stress-ng類比CPU使用率高的情境。
遠端連線登入到監控的ECS執行個體,請參見ECS遠端連線方式概述。
安裝stress-ng工具。
Alibaba Cloud Linux、CentOS、RHEL
yum install stress-ng -yUbuntu、Debian
apt-get install stress-ng -y使用stress-ng壓測2個CPU核心,CPU負載設定為85%,運行5分鐘後停止。
stress-ng --cpu 2 --cpu-load 85 --timeout 5m觀察CPU使用方式,運行壓測的執行個體重啟後,CPU使用率下降。
