ChaosBlade Cli命令 模拟CPU负载实验

1 背景知识

本文档介绍如何在物理主机下使用 ChaosBlade 模拟 CPU 负载压力实验,可通过参数指定 CPU 负载百分比、负载核(数)等数据。

2 场景介绍

CPU 混沌实验用于在主机模拟 CPU 负载情况,通过抢占 CPU 资源,模拟 CPU 在特定负载情况下,验证其对服务质量、监控告警、流量调度、弹性伸缩等应用能力的影响。

CPU 相关的混沌实验包含 CPU 满载,可以指定核数、具体核满载或者总 CPU 负载百分比。

运行以下命令可查看模拟 CPU 负载场景的帮助信息:

blade create cpu fullload -h

3 命令参数

参数名 说明 类型
cpu-count 指定 CPU 负载的核数 int 仅当cpu-list为空时有效,取值范围为 0-cpu 逻辑核数,默认取值 cpu 逻辑核数
cpu-list 指定 CPU 负载的具体核,核索引从 0 开始 string 0-3 或 0,3
cpu-percent 指定 CPU 负载百分比 int 取值范围为0-100,默认为100
climb-time 指定 CPU 负载爬坡时间,单位秒 int 取值范围为0-600,默认为0

4 命令案例

4.1 创建 CPU 满载实验

blade create cpu fullload

输出如下所示代表实验执行成功,result 返回值表示实验的 uid,在销毁实验中需要使用。
可通过 top 1 指令查看执行情况

%Cpu0  : 99.3 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.7 hi,  0.0 si,  0.0 st
%Cpu1  : 99.3 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.3 hi,  0.3 si,  0.0 st
%Cpu2  : 99.0 us,  0.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
%Cpu3  : 97.3 us,  2.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st

实验生效,接下来销毁实验。

blade destroy 3383caddcd7c43f7

若返回 code 为 200 则销毁成功。

4.2 随机指定核数满载

blade create cpu fullload --cpu-count 2

使用 top 1 指令验证。

%Cpu0  : 99.3 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.3 hi,  0.3 si,  0.0 st
%Cpu1  :  0.7 us,  1.7 sy,  0.0 ni, 13.3 id, 83.3 wa,  0.7 hi,  0.3 si,  0.0 st
%Cpu2  : 99.3 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.7 hi,  0.0 si,  0.0 st
%Cpu3  :  1.3 us,  2.3 sy,  0.0 ni,  0.0 id, 95.0 wa,  1.0 hi,  0.3 si,  0.0 st

指令生效,Cpu0 和 Cpu2 满载。

4.3 指定 CPU 负载百分比

blade create cpu fullload --percent 50

4.4 使用 top 指令验证

%Cpu(s): 40.3 us,  1.3 sy,  0.0 ni, 58.1 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st

4.5 实现原理

利用消耗 CPU 时间片来做。详见代码:burncpu