文章地址:
wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/1.3.0/chaosblade-1.3.0-linux-amd64.tar.gz
tar xf chaosblade-1.3.0-linux-amd64.tar.gz
# ./chaosblade-1.3.0/blade version
version: 1.3.0
env: #1 SMP Tue Mar 23 09:27:39 UTC 2021 x86_64
build-time: Wed Aug 4 12:52:28 UTC 2021
# 查看 blade 命令帮助文档
./blade -h
# 所有的命令都可以添加 -h 来查看此命令如何使用,如创建混沌实验
./blade create -h
# 所有的命令都可以添加 -d 来查看更细的执行信息
./blade create cpu fullload -d
-d, --debug 设置工具为 DEBUG 模式,主要用于调试使用
-h, --help 查看 blade 命令帮助文档
创建混沌实验命令,每个实验对应一个 uid,后续的查询、销毁实验都要用到此 uid,如果遗忘了 uid,可以通过
./blade status --type create
./blade status --type create --status Success #只查看成功的
命令进行查询
# 示例: 创建 cpu 满载实验
./blade create cpu fullload --cpu-count 1
# 返回结果如下
{"code":200,"success":true,"result":"6fa04946baf42920"}
# code 的值等于 200 说明执行成功,其中 result 的值就是 uid
# 销毁上述实验
./blade destroy 6fa04946baf42920
# 返回结果如下
{"code":200,"success":true,"result":"command: cpu fullload --cpu-count 2 --debug false --help false"}
################# 查看帮助 #################
./blade create cpu load --help
################# 把全部CPU打满 #################
./blade create cpu load
################# 把全部CPU打到60% #################
./blade create cpu load --cpu-percent 60
#比如现在的CPU2C,60%,执行top看到的就是120%
################# 随机选一颗CPU打到60% #################
./blade create cpu load --cpu-percent 60 --cpu-count 1
#测试的时候,这样写CPU会用到100%,原因未知
上述创建的测试都是在后台运行的,需要取消某个测试,参考上面的'Demo演示'
################# 查看帮助 #################
./blade create mem load --help
################# 内存打到50% #################
./blade create mem load --mode ram --mem-percent 50 #ram mode
./blade create mem load --mode cache --mem-percent 50 #cache mode 可以用 free -h 查看
################# 系统保留500M内存 #################
./blade create mem load --mode ram --reserve 500 --rate 100
################# 实现原理 #################
ram 模式采用代码申请内存实现 cache 模式采用 dd、mount 命令实现,挂载 tmpfs 并且进行文件填充
################# 常见问题 #################
问:误操作内存打满,机器搞死,动不了,怎么搞?
答:重启机器
################# 查看磁盘IO工具 #################
yum install sysstat iotop -y
iostat -x -t 2
iostat -dxm 1
iotop
################# 查看帮助 #################
./blade create disk burn --help
################# 读IO升高 #################
./blade create disk burn --read --path /home
#会在 /home/chaos_burnio.read 创建一个600M的文件,任务销毁时自动删除
################# 写IO升高 #################
./blade create disk burn --write --path /home
#会在 /home/chaos_burnio.write 逐步生成一个1000M的文件,任务销毁时自动删除
################# 读写IO均升高 #################
./blade create disk burn --read --write
################# 查看帮助 #################
./blade create disk fill --help
################# 指定目录填充10G数据 #################
./blade create disk fill --path /data --size 10000
#这个单位是固定的MB,10000MB即10GB
#不一会,会在生成一个/data/chaos_filldisk.log.dat 10GB的文件,任务销毁时自动删除
################# 磁盘填充70%并保留文件句柄 #################
./blade create disk fill --path /data --percent 70 --retain-handle
################# 磁盘保留4GB #################
./blade create disk fill --path /data --reserve 4096
##### 查看帮助 #####
./blade create network delay --help
##### 安装需要的包 #####
yum install iproute -y
##### 访问本机 8080 和 8081 端口延迟 3 秒,延迟时间上下浮动 1 秒 #######
./blade create network delay --time 3000 --offset 1000 --interface eth0 --local-port 8080,8081
##### 对整个网卡 eth0 做 5 秒延迟,排除 22 和 8000到8080 端口 ######
./blade create network delay --time 5000 --interface eth0 --exclude-port 22,8000-8080
此实验会修改本地的 hosts,篡改域名地址映射。
网络丢包场景主要验证域名解析异常的情况下,系统的自我容错能力。
# www.baidu.com 域名不可访问
./blade create network dns --domain www.baidu.com --ip 10.0.0.0
# 访问本机 8080 和 8081 端口丢包率 70%
blade create network loss --percent 70 --interface eth0 --local-port 8080,8081
# 实现整个网卡不可访问,不可访问时间 20 秒。执行完成下面命令后,当前的网络会中断掉,20 秒后恢复。切记!!勿忘 --timeout 参数
blade create network loss --percent 100 --interface eth0 --timeout 20
https://github.com/chaosblade-io/chaosblade
https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/1.3.0/chaosblade-1.3.0-linux-amd64.tar.gz
https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/blade-version