全部產品
Search
文件中心

:設定ECS執行個體CPU使用率警示自動重啟

更新時間:Dec 28, 2024

ECS執行個體的CPU使用率異常升高會影響其上啟動並執行應用程式效能,繼而導致應用運行緩慢或停止回應。為了快速恢複,您可以重啟ECS執行個體以降低CPU使用率,減輕對應用的影響。OOS提供警示觸發功能,支援在檢測到CPU使用率過高時自動重啟執行個體,從而實現自動化處理,無需人工幹預。本文介紹如何通過配置CPU使用率警示,並在超過閾值時自動重啟ECS執行個體,以快速恢複服務效能。

前期準備

您需要為CloudOps Orchestration Service準備一個擁有重啟ECS許可權的RAM角色。

  1. 定義一個自訂權限原則,包含重啟執行個體ecs:RebootInstance和查詢執行個體ecs:DescribeInstances的操作許可權,詳細步驟,請參見建立自訂權限原則

    自動重啟要求的權限

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "ecs:RebootInstance",
            "ecs:DescribeInstances"
          ],
          "Resource": "*",
          "Effect": "Allow"
        }
      ]
    }
  2. 建立一個普通服務角色,並指定CloudOps Orchestration Service為受信服務。選擇受信服務的詳細步驟,請參見建立可信實體為阿里雲服務的RAM角色

  3. 將自訂的權限原則授予新建立的服務角色,這樣角色就具備了執行所需操作的許可權,詳細步驟,請參見為RAM角色授權

操作步驟

  1. 登入CloudOps Orchestration Service控制台,自動化任務 > 警示與事件營運

  2. 在警示與事件營運頁面,單擊建立,選擇閾值警示image

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

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

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

  6. 單擊建立,彈出對話方塊內單擊確認,完成設定。

驗證結果

本文通過開源壓測工具stress-ng類比CPU使用率高的情境。

  1. 遠端連線登入到監控的ECS執行個體,請參見ECS遠端連線方式概述

  2. 安裝stress-ng工具。

    Alibaba Cloud Linux、CentOS、RHEL

    yum install stress-ng -y

    Ubuntu、Debian

    apt-get install stress-ng -y
  3. 使用stress-ng壓測2個CPU核心,CPU負載設定為85%,運行5分鐘後停止。

    stress-ng --cpu 2 --cpu-load 85 --timeout 5m
  4. 觀察CPU使用方式,運行壓測的執行個體重啟後,CPU使用率下降。image