全部產品
Search
文件中心

:通過警示觸發自動重啟CPU使用率高的ECS執行個體

更新時間:Jul 01, 2024

使用OOS警示觸發功能,自動重啟CPU使用率高的ECS執行個體。

背景

當ECS執行個體因已知或未知的原因CPU使用率過高時,往往會影響執行個體上應用的運行狀態,造成應用運行緩慢甚至卡死。此時通過重啟執行個體能夠快速恢複CPU使用率到較低水平,能夠避免對應用的影響。這個情境可以使用OOS警示觸發功能,將CPU使用率高的執行個體自動重啟,從而達到無人值守自動回復的效果。

操作步驟

  1. 登入OOS控制台

  2. 單擊警示與事件營運,單擊建立

  3. 設定觸發規則。產品類型選擇Elastic Compute Service,在規則描述中選擇觸發條件;本文選擇當cpu_total大於80%時,觸發警示操作,即進行重啟執行個體;觸發沉默周期預設為5分鐘,即5分鐘內不會因為重複的警示而重啟執行個體。

  4. 在需要警示資源中,選擇要監控CPU使用率的執行個體。

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

  6. 設定模板參數。選擇從警示訊息體選擇參數

  7. 地區ID目標執行個體任務執行的並發比率保留預設配置即可。

  8. 執行使用到的許可權的來源,需要為OOS服務建立RAM角色,參考《為OOS服務設定RAM許可權》。執行此模板需要的權限原則。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "ecs:RebootInstance",
            "ecs:DescribeInstances"
          ],
          "Resource": "*",
          "Effect": "Allow"
        }
      ]
    }
  9. 設定完成後,單擊建立

結果驗證

針對本文中的情境,可以通過壓測工具 stress-ng 類比CPU使用率高的情況。

  1. 遠端連線登入到監控的ECS執行個體。

  2. 安裝stress-ng。

    # AliyunLinux/CentOS/RHEL
    yum install stress-ng -y
    
    # Ubuntu/Debian
    apt-get install stress-ng -y
  3. 運行stress-ng命令類比CPU使用。

    # stress-ng命令可以根據壓測需求調整參數。
    # 樣本命令中,使用stress-ng壓測2個CPU核,CPU負載設定為85%,運行5分鐘後停止。
    stress-ng --cpu 2 --cpu-load 85 --timeout 5m
  1. 壓測1分鐘左右,觀察警示觸發被執行,運行命令的ECS執行個體被成功重啟,ECS執行個體的CPU使用率也下降。Screenshot 2023-05-22 at 19.12.52.png