有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
文档中心 > 混沌演练平台 > 故障动作库 > 容器 > 集群节点资源(CPU、内存、磁盘)压测故障案例

背景

容器节点(如 Kubernetes 集群中的工作节点)承载着容器资源,负责运行和管理容器实例。在节点业务 QPS 骤增或者服务内存泄露时,可能导致节点资源利用率增高,从而影响业务甚至导致业务进程被杀死。
为了提高容器服务的可靠性和稳定性,需进行节点故障演练。通过演练,可以验证系统在容器节点出现故障时能否正常运行,提前暴露此故障场景下的一系列问题,以便优化系统架构并做好应急预案。

演练实施

步骤一:演练准备

新建容器节点,添加实例,部署测试服务。若已有可以演练的容器节点,则直接创建演练。
进入探针管理页面为 CVM 节点安装探针,具体安装方式请参考 探针管理 进行操作。

步骤二:创建演练

1. 登录 混沌演练控制台,进入演练管理页面,单击新建演练
?
?
?
2. 进入经验模板选择界面,点击跳过,创建空白演练。
?
?
?
3. 填写演练名称和演练描述,点击下一步
?
?
?
4. 填写动作组信息,选择资源类型为容器,资源对象选择标准集群普通节点。
?
?
5. 点击添加实例,选择实例列表。
?
?
6. 在演练动作处点击立即添加演练动作,分别在 CPU 资源内存资源磁盘资源选择动作。
?
?
7. 根据需要修改动作参数(该演示直接采用默认值进行演练)。
7.1 CPU 利用率高
?
?
?
说明:
cpu 利用率:指定 CPU 负载百分比,取值在0 - 100之间。
持续时间:故障动作持续时间,达到该时间探针会自动将故障恢复。
调度优先级:影响进程在 CPU 调度中的优先级。较低的 nice 值使进程更有可能获得 CPU 时间片,从而提高其执行优先级。仅当利用率为100%时生效。
7.2 内存利用率高
?
?
?
说明:
内存使用率:指定内存负载百分比,取值在0 - 100之间。
持续时间:故障动作持续时间,达到该时间探针会自动将故障恢复。
是否开启 OOM 保护:开启后会降低故障进程被 OOM-KILL 的可能性,优先 Kill 业务进程。
内存占用速率:每秒增加的内存使用量。
7.3 磁盘使用率高
?
?
?
说明:
动作参数说明:
磁盘目录:需要进行填充的磁盘目录,即文件写入目录。
文件大小:填充的文件大小。
磁盘使用率:通过staf命令获取磁盘使用情况,计算出达到指定使用率所需的文件大小。
保留空间:剩余空间保留大小。
持续时间:故障动作持续时间,达到该时间探针会自动将故障恢复。
如果文件大小、磁盘使用率、保留空间参数都存在,优先级计算逻辑为: 磁盘使用率 > 保留空间 > 文件大小。
7.4 磁盘 IO 负载
?
?
?
说明:
磁盘目录:指定提升磁盘 IO 的目录,会作用于其所在的磁盘上。
模式:提供读、写两种方式实施高负载。
块大小:指定每次读取或写入的块大小。
块个数:指定复制的块个数。
持续时间:故障动作持续时间,达到该时间探针会自动将故障恢复。
8. 完成动作组编辑,点击下一步
?
?
?
9. 点击添加监控指标。
?
?
?
?
?
10. 点击提交完成演练创建。
?
?

步骤三:执行演练

1. 通过预检查看节点探针状态,将未安装的节点按照预检结果提示内容进行安装。
?
?
2. 点击执行开始注入 CPU 高负载故障。
?
?
3. 观察节点监控指标,CPU 利用率达到预设值,并且在到指定时间完成恢复。
?
?
?
4. 执行内存利用率高动作,观察监控指标。
?
?
?
5. 执行磁盘利用率高动作,进入终端使用 df 命令查看使用率。
?
?
?
6. 执行磁盘IO高负载动作,进入终端使用 iostat 命令观察。
?
?
说明:
iostat -x 可查看块设备运行状态的详细信息,该动作主要查看 %util 参数,表示设备发出 I/O 请求所用时间的百分比,当接近100%时表示设备带宽利用率几乎达到了其最大容量,使整个磁盘性能下降,严重影响处理其他读写请求。
?


http://www.vxiaotou.com