阿里chaosblade工具实践

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

阿里chaosblade工具实践_第1张图片

2.1.2 恢复cpu

用法如下:

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

阿里chaosblade工具实践_第2张图片
上面的命令只能对所有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装在了这个目录下,想想没什么毛病,可以自行验证下
阿里chaosblade工具实践_第3张图片

2.2.2 恢复磁盘容量

命令同上

3、待补充···

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

你可能感兴趣的:(混沌测试,linux,docker)