阿里chaosblade工具实践

本文介绍了如何使用阿里ChaosBlade工具在Linux和Docker环境中进行混沌测试,包括模拟CPU满负荷和磁盘填充满的故障场景,并探讨了实验中遇到的问题与解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装

docker pull chaosbladeio/chaosblade-demo
# 启动命令加--name 时发现没起效果,启动完之后会直接进入容器内,混沌实验也是需要进入目录下操作的
docker run -it --privileged chaosbladeio/chaosblade-demo

2、实验

混沌测试的实验需要在容器中的/chaosblade目录下进行,实验时可以同时在xshell中打开两个窗口查看,方便查看实验效果。

2.1 CPU使用率故障

2.1.1 cpu达到满负荷

用法如下:

# 让所有的CPU均达到满负荷
$ ./blade create cpu fullload
# 这是执行上面那句命令的返回结果,注意result的uid,破坏混沌实验需要用到
{"code":200,"success":true,"result":"d9e3879cb68416a2"}
# 在另一窗口中,使用top命令查看目前内存的情况
top 
# 结合1查看各个cpu的使用情况
1

CPU使用率故障

2.1.2 恢复cpu

用法如下:

# 破坏混沌实验,缩写blade d 编号
$ ./blade destroy d9e3879cb68416a2 # 这边的编号是前面create 执行后返回的result

恢复cpu
上面的命令只能对所有CPU进行同时进行混沌实验,可能存在仅对部分CPU进行测试,或者指定某个CPU进行测试,可参考以下命令:

注意:以下的方式没有返回结果,用不了./blade destroy,需要手动kill

执行下面的命令后发现没有返回结果,我需要到宿主机上kill -9 相关的进程,后面引发了一个思考,就是在容器中执行top,也可以杀掉占满内存的那个进程,实验结果确实是可以的,同事举了个例子就是气球里面套气球,容器没限制内存,所以把容器内存撑大后,宿主机的内存也上去了。

# 等同于./blade create cpu fullload,注意不能进到bin中执行
bin/chaos_burncpu --start
# 可以使用cpu-count指定需要满载的cpu的内核个数
bin/chaos_burncpu --start --cpu-count 4
# 指定让某个cpu内核满载
bin/chaos_burncpu --start --cpu-list 1
# 需要通过查看进程ID并删除实现破坏混沌实验,chaosblade容器内或者宿主机上操作均可(可结合top)
ps -ef | grep  chaos_burncpu   (查出pid)
kill -9 pid (强杀)

2.2 磁盘使用率故障

2.2.1 填充磁盘容量

用法如下:

# 其中size是指定填充磁盘的大小,单位为MB
$./blade create disk fill --size 1000
# 使用df -h 命令查看目前磁盘的情况
df -h 

PS:这边我发现每次加上去的容量都是这/vdb这个目录,经同事提醒是因为docker装在了这个目录下,想想没什么毛病,可以自行验证下
填充磁盘容量

2.2.2 恢复磁盘容量

命令同上

3、待补充···

指定内存加到百分之几
指定磁盘的填充大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值