ChaosBlade-阿里混沌测试工具
关键词混沌测试chaosblade安装wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/1.3.0/chaosblade-1.3.0-linux-amd64.tar.gztar xf chaosblade-1.3.0-linux-amd64.tar.gz# ./chaosblade-1.3.0/blade versi
·
关键词
- 混沌测试
- chaosblade
安装
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 命令帮助文档
Demo演示
创建混沌实验命令,每个实验对应一个 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"}
压测CPU
################# 查看帮助 #################
./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演示'
压测Memory
################# 查看帮助 #################
./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
################# 查看磁盘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
篡改DNS域名解析
此实验会修改本地的 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
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)