赞
踩
chaosblade下载链接: 点击这里
进入页面后,选择所需的版本进行下载,这里我使用的是chaosblade-1.7.1-linux-amd64.tar.gz
这里我放到了自定义目录./test下,使用tar进行解压
$ tar -zxvf chaosblade-1.7.1-linux-amd64.tar.gz
解压后自动在./test创建chaosblade-1.7.1文件夹,进入chaosblade-1.7.1目录,使用./blade执行以下命令。
举几个例子:
1. 模拟磁盘填充,可以指定填充的目录和填充大小。验证磁盘满下对系统服务的影响,比如监控告警、服务稳定性等。
# 执行实验之前,先看下 /home 所在磁盘的大小 df -h /home Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 4.0G 34G 11% / # 执行磁盘填充,填充 40G,即达到磁盘满的效果(可用34G) blade create disk fill --path /home --size 40000 # 返回结果 {"code":200,"success":true,"result":"7a3d53b0e91680d9"} # 查看磁盘大小 df -h /home Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 40G 0 100% / # 销毁实验 blade destroy 7a3d53b0e91680d9 {"code":200,"success":true,"result":"command: disk fill --debug false --help false --path /home --size 40000"} # 查看磁盘大小 df -h /home Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 4.0G 34G 11% /
2. CPU 相关的混沌实验包含 CPU 满载,可以指定核数、具体核满载或者总 CPU 负载百分比。
旨在 CPU 在特定负载下,验证服务质量、监控告警、流量调度、弹性伸缩等能力。
# 创建 CPU 满载实验 blade create cpu load # 返回结果如下 {"code":200,"success":true,"result":"beeaaf3a7007031d"} # code 的值等于 200 说明执行成功,其中 result 的值就是 uid。使用 top 命令验证实验效果 Tasks: 100 total, 2 running, 98 sleeping, 0 stopped, 0 zombie %Cpu0 : 21.3 us, 78.7 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 20.9 us, 79.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 20.5 us, 79.5 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 20.9 us, 79.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st # 4 核都满载,实验生效,销毁实验 blade destroy beeaaf3a7007031d # 返回结果如下 {"code":200,"success":true,"result":"command: cpu load --help false --debug false"} # 指定随机两个核满载 blade create cpu load --cpu-count 2 # 使用 top 命令验证结果如下,实验生效 Tasks: 100 total, 2 running, 98 sleeping, 0 stopped, 0 zombie %Cpu0 : 17.9 us, 75.1 sy, 0.0 ni, 7.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 3.0 us, 6.7 sy, 0.0 ni, 90.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.7 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 19.7 us, 80.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st # 指定索引是 0,3 的核满载,核的索引从 0 开始 blade create cpu load --cpu-list 0,3 # 使用 top 命令验证结果如下,实验生效 Tasks: 101 total, 2 running, 99 sleeping, 0 stopped, 0 zombie %Cpu0 : 23.5 us, 76.5 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 20.9 us, 79.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st # 指定索引 1 到 3 的核满载 blade create cpu load --cpu-list 1-3 Tasks: 102 total, 4 running, 98 sleeping, 0 stopped, 0 zombie %Cpu0 : 2.4 us, 7.1 sy, 0.0 ni, 90.2 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st %Cpu1 : 20.0 us, 80.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 15.7 us, 78.7 sy, 0.0 ni, 5.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 19.1 us, 78.9 sy, 0.0 ni, 2.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
3. 指定内存占用,注意,此场景触发内存占用满,即使指定了 --timeout 参数,也可能出现通过 blade 工具无法恢复的情况,可通过重启机器解决!!!推荐指定内存百分比!
由于目前内存大小计算通过 memory.stat 等文件计算,所以和 free 命令计算不一致,同 top 命令一致,验证时请使用 top 命令查看内存使用。后续会针对内存占用场景进行优化。
# 在执行命令之前,先使用 top 命令查看内存使用信息,如下,总内存大小是 8G,使用了 7.6%
KiB Mem : 7.6/8010196
# 执行内存占用 50%
blade c mem load --mode ram --mem-percent 50
# 查看内存使用
KiB Mem : 50.0/8010196
# 执行内存占用 100%
KiB Mem : 99.6/8010196
# 保留 200M 内存,总内存大小 1G
blade c mem load --mode ram --reserve 200 --rate 100
KiB Mem : 1014744 total, 78368 free, 663660 used, 272716 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 209652 avail Mem
KiB Mem : 79.7/1014744 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ]
还有其他很多用法,请参考链接: chaosblade-help-zh-cn
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。