ECS实例的CPU使用率异常升高会影响其上运行的应用程序性能,继而导致应用运行缓慢或停止响应。为了快速恢复,您可以重启ECS实例以降低CPU使用率,减轻对应用的影响。OOS提供告警触发功能,支持在检测到CPU使用率过高时自动重启实例,从而实现自动化处理,无需人工干预。本文介绍如何通过配置CPU使用率告警,并在超过阈值时自动重启ECS实例,以快速恢复服务性能。
前期准备
您需要为系统运维管理准备一个拥有重启ECS权限的RAM角色。
定义一个自定义权限策略,包含重启实例
ecs:RebootInstance
和查询实例ecs:DescribeInstances
的操作权限,详细步骤,请参见创建自定义权限策略。创建一个普通服务角色,并指定系统运维管理为受信服务。选择受信服务的详细步骤,请参见创建可信实体为阿里云服务的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使用率下降。
文档内容是否对您有帮助?