ChaosBlade-阿里混沌测试工具

3 篇文章 0 订阅

关键词

  • 混沌测试
  • 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
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯尔kyle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值