系统负载高和PID资源不足演练

系统负载load是衡量系统工作量的一个指标,具体的表示为:在特定时间间隔内,系统处于可运行状态和不可中断状态的平均进程数。监控负载load是一个重要指标,可以判断当前业务的负载情况,用于及时告警并做出应对措施。

实现原理

本方案使用云助手插件ACS-ECS-HighLoad,通过vfork命令创建出预期数量的进程,以达到目标的load值,每个进程创建后执行sleep动作,直至超时退出。因此该场景对系统业务影响较小。

使用指南

演练准备

故障注入

  1. 登录ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 使用具有sudo访问权限的用户,运行云助手插件ACS-ECS-HighLoad

    sudo acs-plugin-manager --exec --plugin ACS-ECS-HighLoad --params inject,[num-processes=paramA],[duartion=paramB]

    []内为可选故障注入参数,参数说明:

    • num-processes(可选):需要创建的进程数量,该值略会近似预期达到的最大load值,默认100。

    • duartion(可选):持续时间,默认为300s。

    显示如下所示时,说明云助手插件ACS-ECS-HighLoad已启动。

    image

  3. 查看故障注入是否成功。

    • 使用top命令,分别检查1分钟、5分钟、15分钟系统负载的指标。

    • 在云监控中检查系统负载曲线。

故障恢复

  • 方法一(推荐):等待超时自动恢复。

  • 方法二:在ECS实例中执行故障恢复命令。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-HighLoad --params recover

演练示例

  1. 故障注入

    sudo acs-plugin-manager --exec --plugin ACS-ECS-HighLoad --params inject

    返回如下所示,表示注入成功,

    image

  2. 查看注入效果。

    • 使用top命令中查看系统负载,如下图所示,1 min为98.33,5 min为58.24,15 min为32.66。image

    • 在云监控控制台查看平均负载。

      image

  3. 等待故障恢复。

    • 等待超时,系统负载会慢慢恢复。如下图,1 min的负载已经低于5 min的负载,说明已经在恢复中。

      image

    • 执行故障恢复命令。

      sudo acs-plugin-manager --exec --plugin ACS-ECS-HighLoad --params recover