ECS實例的CPU使用率異常升高會影響其上運行的應用程序性能,繼而導致應用運行緩慢或停止響應。為了快速恢復,您可以重啟ECS實例以降低CPU使用率,減輕對應用的影響。OOS提供告警觸發功能,支持在檢測到CPU使用率過高時自動重啟實例,從而實現自動化處理,無需人工干預。本文介紹如何通過配置CPU使用率告警,并在超過閾值時自動重啟ECS實例,以快速恢復服務性能。
前期準備
您需要為系統運維管理準備一個擁有重啟ECS權限的RAM角色。
定義一個自定義權限策略,包含重啟實例
ecs:RebootInstance
和查詢實例ecs:DescribeInstances
的操作權限,詳細步驟,請參見創建自定義權限策略。{ "Version": "1", "Statement": [ { "Action": [ "ecs:RebootInstance", "ecs:DescribeInstances" ], "Resource": "*", "Effect": "Allow" } ] }
創建一個普通服務角色,并指定系統運維管理為受信服務。選擇受信服務的詳細步驟,請參見創建可信實體為阿里云服務的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 -y
Ubuntu、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使用率下降。