一、下载安装
wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/agent/github/1.0.0/chaosblade-1.0.0-linux-amd64.tar.gz tar zxvf chaosblade-1.0.0-linux-amd64.tar.gz cd chaosblade-1.0.0
二、模拟故障
1、CPU满载 ./blade create cpu load 2、指定CPU百分比负载 ./blade create cpu load --cpu-percent 60 3、内存满载 ./blade c mem load --mode ram --mem-percent 100 --timeout 600 && top :适用blade对内存故障时很快恢复正常,不满足需求,故适用stress进行模拟 sudo apt-get update sudo apt install stress stress –i 4 –vm 10 –vm-bytes 1G –vm-hang 100 –timeout 100s 说明:新增4个io进程,10个内存分配进程,每次分配大小1G,分配后不释放,测试100S 确认cpu处于满载状态 4、磁盘满载 df -h #检查磁盘空余 ./blade create disk fill --path /hbdata--size 140000 # 140G dd if=/dev/zero of=test bs=1M count=8000 # 使用dd生成文件填满余下空间 5、内存溢出oom ./blade prepare jvm --pid 1 ## 设置异常的进程id ./blade c jvm oom --area HEAP --wild-mode true --process java --timeout 300 6、网络延迟 ./blade create network delay --time 3 --offset 1 --interface eth0 --local-port 6379 #基于k8s ./blade create k8s container-network delay --time 1000 --offset 500 --interface eth0 --local-port 8080 --kubeconfig config --namespace xxx --container-ids 19fa3372f4ffa448a3cc3f2fa9d880bb9a1d4aeff3f16a29a38f4a8b8c08ad7c --labels app= gen=75 7、网络丢包 ./blade create network loss --percent 10 --interface eth0 --local-port 6379 8、目标请求包破损 ./blade create network corrupt --percent 10 --destination-ip 172.19.7.251 --interface eth0 # 如a服务调用b服务 ,在a服务执行故障, destination-ip目标ip为b服务ip , b服务将受影响 9、目标请求包乱序 ./blade c network reorder --correlation 80 --percent 50 --gap 2 --time 500 --interface eth0 --destination-ip 172.19.2.219 # 如a服务调用b服务 ,在a服务执行故障, destination-ip目标ip为b服务ip , b服务将受影响 10、进程被杀 ./blade create process kill --process app-name 11、端口不可用,通过网络100%丢包模拟 ./blade create network loss --percent 100 --interface eth0 --local-port 20880,2181 && date 12、jvm-cpu满载 ./blade create jvm cpufullload --cpu-count 6 --pid 1 13、running线程异常增多 ./blade create jvm threadfull --thread-count 200 --running --pid 1 && date 14、waiting线程异常增多 ./blade create jvm threadfull --thread-count 100 --pid 1 ./blade create jvm threadfull --thread-count 200 --wait --pid 1 && date 14、代码缓冲区满载 ./blade create jvm CodeCacheFilling --pid 1 15、dubbo服务线程池满载 ./blade create dubbo threadpoolfull --provider --pid 1(provider方执行) ./blade c dubbo threadpoolfull --provider --pid 1 && date 16、模拟客户端redisson异常 ./blade create redisson delay --time 100 ./blade create redisson delay --time 300 --offset 300 --effect-percent 100 --pid 1 && date 17、模拟客户端jedis异常 ./blade create jedis delay --time 500 -- offset 500--pid 1 ##pid为应用id
三、销毁故障实验
1、销毁故障 blade destroy beeaaf3a7007031d #beeaaf3a7007031d为执行故障返回的result-id 2、查询执行故障类型状态 blade status --type create #attach|create|destroy|detach



