-
Notifications
You must be signed in to change notification settings - Fork 0
Chaosblade Learning Report zaq
Zaq edited this page Nov 2, 2019
·
5 revisions
Chaosbalde是一个故障模拟工具,用于模拟常见的故障场景,帮助提升分布式系统的可恢复性和对故障的容错性,可实现底层故障的注入,特定是操作简洁、无侵入 、扩展性强。
其目前支持的演练场景有操作系统类的CPU、磁盘、进程、网络、Java应用类的Dubbo、MySQL、Servlet和自定义类方法延迟或抛异常等以及杀容器、杀Pod。
本文档模拟Chaosblade的两个使用场景:
模拟服务器磁盘爆满 模拟服务器内存不足
https://github.com/chaosblade-io/chaosblade/releases
# tar zxvf chaosblade-0.2.0.linux-amd64.tar.gz -C /Data/apps/
# mv /Data/apps/chaosblade-0.2.0 /Data/apps/chaosblade
./blade help
Available Commands:
create Create a chaos engineering experiment
destroy Destroy a chaos experiment
help Help about any command
prepare Prepare to experiment
query Query the parameter values required for chaos experiments
revoke Undo chaos engineering experiment preparation
server Server mode starts, exposes web services
status Query preparation stage or experiment status
version Print version info
Flags:
-d, --debug Set client to DEBUG mode
-h, --help help for blade
./blade create cpu fullload
使用top命令查看cpu使用情况:
如果忘记了uid,使用命令:
./blade status --type create
恢复故障:
./blade destroy uid
可以看到,状态恢复原状。
故障注入 :
填充大小为200G文件:
./blade create disk fill --size 20480
查看当前fileSystem的状态:
df -h
故障恢复:
./blade destroy uid
故障注入:
./blade create disk burn --write --read --size 10 --size 1024 --timeout 300
(查看命令dstat)
故障恢复:
./blade destroy uid
故障注入:
./blade create mem load --timeout 300 --mem-percent 80
故障恢复:
./blade create disk -h
Usage:
blade create disk [flags]
blade create disk [command]
Examples:
disk fill --path /home --size 1000
# You can execute "blade query disk mount-point" command to query the mount points
Available Commands:
burn Increase disk read and write io load
fill Fill the specified directory path
Flags:
-h, --help help for disk
Global Flags:
-d, --debug Set client to DEBUG mode
# 为磁盘注入大容量的文件模拟磁盘不足的故障
blade create disk fill
--flags:
--path string:指定注入的文件的位置,如果未指定,则位置在根目录创建
--size string:指定注入的文件的大小,一般为了表现故障,注入较大的文件来体现效果,单位为MB
--timeout string:指定本次注入故障实验的时间
# 增加磁盘IO读写操作负载
blade create disk burn
--flags:
--path string: 指定注入的位置,如果未指定,则位置在根目录创建
--read: 通过增加读操作来占据IO,同时产生600M的读取空间,实验结束后删除
--size string:磁盘块大小,单位是MB,默认值为10
--timeout string:本次注入实验的有效时间,单位为秒
--write:通过增加写操作来占据IO,它将通过size标志的值来创建文件,如果size为默认的10,那么就会创建一个10M*100=1000M的文件进行写入,实验结束之后删除
./blade create mem -h
Usage:
blade create mem [flags]
blade create mem [command]
Examples:
mem load
Available Commands:
load mem load
blade create mem load
--flags:
--timeout string:实验结束的时间,单位为s
--mem-percent string:占据的内存的百分比(0-100