ChaosBlade故障注入工具--cpu,内存,磁盘占用\IO,网络注入等

前言:

本文介绍一款开源的故障注入工具chaosblade,该工具原本由阿里研发,现已开源;工具特点:功能强大,使用简单。

该工具故障注入包含:cpu,内存,磁盘io,磁盘占用,网络注入等

简写:

status --> s;   destroy -->d;     create --> c;

使用方法:

工具获取连接:https://github.com/chaosblade-io/chaosblade/releases

将工具上传至待测机器并解压

进入解压的工具目录,执行对应注入命令

./blade create cpu load --cpu-list 0-3 --cpu-percent 80

执行成功,会返回一个id,如需撤销故障注入,执行如下命令

./blade d {id}

查询曾经注入的故障id,便于删除

./blade s --type c

磁盘注入:

参数介绍:

--path string     需要填充的目录,默认值 /

--size string      需要填充的文件大小,单位M,取值整数,例如:--size 1024

--reserve string   保留磁盘大小,单位MB,取值为不包含单位的正整数,例如:--reserve 1024。如果size、percent、reserve参数都存在,优先级:percent > reserve > size.。

--percent string   指定磁盘使用率,如 --percent 80

--retain-handle    是否保留填充    (亲测,只要不加timeout参数,默认保留填充,只有磁盘空间注入有此参数)       

--timeout string   设定运行时长,单位秒    (此参数为通用参数,各种故障场景几乎都可以加)

例如:

blade create disk fill --path /home --percent 80 --retain-handle   填充home目录80%的使用空间

blade create disk fill --path /home --size 200 --retain-handle     填充home目录200M

blade create disk fill --path /home --reserve 200 --retain-handle   仅保留/home目录200M

cpu注入:

blade create cpu load --cpu-list 0,1 --cpu-percent 80     --加压0,1两个核心,负载到80%

blade create cpu load --cpu-list 0-15 --cpu-percent 60

blade create cpu load --cpu-count 3                  --将3个核心加压

blade create cpu fullload                           --cpu满载

 blade create cpu load --cpu-list 0,1,2 --timeout 100     --将0,1,2三个核心加压100s,不带timeout参数默认一直加压

内存注入:

blade create mem load --mode ram --mem-percent 80           --占用80%的ram内存

blade create mem load --mode ram --mem-percent 80 --rate 100  --占用80%ram内存,占用速率100M每秒,rate参数只在占用ram时生效。

blade create mem load --mode catche --reserve 100    --占用catche内存,保留100M内存,速率100M/S,不加mode参数,默认值为catche,采用ram占用必须加mode参数。

注:内存注入满了会导致blade故障无法消除,推荐加percent参数;不使用任何参数会默认将内存加满,使用需谨慎。

磁盘IO注入:

blade create disk burn --write --path /home            --将/home目录挂载磁盘读取磁盘压力加大

blade create disk burn --write --read --path /home       --同时加大磁盘读写压力

blade creat disk burn --write --size 100 --path /home     --加大磁盘写的压力,块大小为100M,此参数可不加,默认10M。

网络相关注入:

注:项目网络延迟,丢包等故障注入平时都是使用tc命令,blade注入原理也是使用tc,这里不总结了,很少用此工具进行丢包,延时注入,有兴趣可以自己研究。

篡改dns域名解析:

blade create network dns --domain www.baidu.com --ip 10.0.0.0   --篡改本地域名解析ip为10.0.0.0。(ps:此条没试过,大家可以试试)

网络包损坏:

Eg:blade create network corrupt --percent 80 --destination-ip 1.1.1.1 --interface eth0   指定eth0发向1.1.1.1的包损坏80%

网络包乱序:

此场景参数较多,列举一下:

--destination-ip string  目标ip,支持子网掩码,如192.168.1.0/24,则对此网段所有ip生效

--exclude-port string   排除掉的对端端口,可以指定多个,如:80,22,80-100;此参数不能与--local-port/--remote-port参数一起使用

--exclude-ip string     排除受影响的ip,支持逗号分隔和子网掩码

--interface string      指定网卡

--local-port string     本地端口

--offset string         延迟事件上下浮动值,单位ms

--remote-port  string   远程端口

--correlation string      和上一包的相关性,取值0-100,必要参数

--gap string            包序列大小,取值正整数

--percent string         立即发送百分比,其实就是不搞乱序的包占比

--time string           网络延时时间

--force                强制覆盖tc规则

--timeout string         设定运行时长

--ignore-peer-port       针对添加--exclude-port参数报ss命令找不到的情况下使用

    

Eg:blade create network reorder --correlation 80 --percent 80 --gap 2 --time 500 --interface eth0 --destination-ip 1.1.1.1    针对目标ip1.1.1.1的网络包进行乱序处理

网络包重复:

--destination-ip string  目标ip,支持子网掩码,如192.168.1.0/24,则对此网段所有ip生效

--exclude-port string   排除掉的对端端口,可以指定多个,如:80,22,80-100;此参数不能与--local-port/--remote-port参数一起使用

--exclude-ip string     排除受影响的ip,支持逗号分隔和子网掩码

--interface string      指定网卡

--local-port string     本地端口

--offset string         延迟事件上下浮动值,单位ms

--remote-port  string   远程端口

--percent string        包重复百分比

--force               强制覆盖tc规则

--timeout string        设定运行时长

--ignore-peer-port       针对添加--exclude-port参数报ss命令找不到的情况下使用

Eg:blade create network duplicate --percent 80 --interface eth0 --destination-ip 1.1.1.1   指定ip,指定网口包重复80%

网络端口占用:

--port string           指定占用端口,必选项

--force               强制占用该端口,会将已使用该端口进程kill掉

--timeout string        设定运行时长

Eg:blade create network occupy --port 8080 --force    强制占用8080端口

其他

ChaosBlade可以对docker容器内进行故障注入,当前项目没有用到,如有需要可自行研究。

Eg:blade create docker cpu load

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:应用层知识点汇总

文章目录 一、网络应用模型二、域名系统(DNS)三、文本传输协议(FTP)四、电子邮件五、万维网和HTTP协议 一、网络应用模型 p2p也就是对等模型 二、域名系统(DNS) 我们知道,随着人们建立一个网站…

记一次systemd服务启动找不到Java命令

首先systemd服务文件 /etc/systemd/system/test.service(文件简化处理了) [Unit] Descriptiontest Afternetwork.target [Service] ExecStart/opt/test/bin/test_start.sh [Install] WantedBymulti-user.target其中启动命令ExecStart指向的是一个sh启动脚本, 脚本内…

文生视频Sora模型发布,是否引爆AI芯片热潮

文生视频Sora模型发布,是否引爆AI芯片热潮 1. 引言 在人工智能的历史长河中,每一次技术的飞跃都伴随着社会生产力的巨大变革。自2015年以来,深度学习技术的突破性进展,尤其是在自然语言处理、图像识别和机器学习等领域的成功应…

海外IP代理应用:亚马逊使用什么代理IP?

代理IP作为网络活动的有力工具,同时也是跨境电商的必备神器。亚马逊作为跨境电商的头部平台,吸引了大量的跨境电商玩家入驻,想要做好亚马逊,养号、测评都需要代理IP的帮助。那么应该使用什么代理IP呢?如何使用&#xf…

vue el-avatar 使用require提示无法找到图片

报错信息 错误代码 问题分析 vue初始化DOM树时没有挂载数据,导致无法找到模块 解决方案

抖音商家短视频直播流量变现运营SOP地图

【干货资料持续更新,以防走丢】 抖音商家短视频直播流量变现运营SOP地图 部分资料预览 资料部分是网络整理,仅供学习参考。 抖音运营资料合集(完整资料包含以下内容) 目录 【提升短视频运营效率的专业指南】 高效运营&#xf…

1 数据分析概述与职业操守 (3%)

1、 EDIT数字化模型 E——exploration探索 (是什么) 业务运行探索:探索关注企业各项业务的运行状态、各项指标是否合规以及各项业务的具体数据情况等。 D——diagnosis 诊断 (为什么) 问题根源诊断:当业务指标偏离正常值时&…

【STM32】HAL库 CubeMX教程---基本定时器 定时

目录 一、基本定时器的作用 二、常用型号的TIM时钟频率 三、CubeMX配置 四、编写执行代码 实验目标: 通过CUbeMXHAL,配置TIM6,1s中断一次,闪烁LED。 一、基本定时器的作用 基本定时器,主要用于实现定时和计数功能…

新能源车高压线束更换VR虚拟互动教学保障了培训安全可控

随着新能源汽车市场的快速发展,对于新能源汽车检修人才的需求也日益增长。然而,传统的培训模式往往存在一些限制,如培训周期长、成本高、实践机会少等。为了解决这些问题,新能源车检修VR互动培训应运而生,成为一种创新…

根据标签出现的频次渲染不同大小的圆和文字,圆随机摆放且相互之间不重叠

效果图: 按每个标签出现的频次大小渲染出不同比例大小的圆,渲染的圆的宽度区间为 [40, 160] ,其中的文字的大小区间为 [12, 30] ,圆的位置随机摆放且不重叠。 根据已知条件可得出,标签中频次最高的对应圆的宽度(直径…

蓝桥杯(3.7)

P1102 A-B 数对 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int c sc.nextInt();int[] res new int[n1];for(int i1;i<n;i)res[i] sc.nextInt();int sum 0;for(i…

ROS2学习(二):仿真案例汇总(基于Ubuntu_2004 ROS2_noetic)

文章目录 一、slam仿真1、安装环境依赖2、创建Turtlebot3目录并下载安装3、配置Turtlebot3环境4、运行slam仿真 一、slam仿真 1、安装环境依赖 sudo apt install ros-noetic-cartographer ros-noetic-cartographer-ros2、创建Turtlebot3目录并下载安装 mkdir -p catkin_turt…

Chrome浏览器好用的几个扩展程序

Chrome好用的扩展程序 背景目的介绍JsonHandle例子未完待续。。。。。。 背景 偶然在往上看到Chrome有很多好用的扩展程序&#xff0c;比较好用&#xff0c;因此记录下比较实用的扩展程序。 目的 记录Chrome浏览器好用的插件。 介绍 JsonHandle下载以及无法扩展插件的解决…

YOLOv5目标检测学习(2):运行一个yolo应用所需要配置的深度学习环境

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、CUDA、CUDNN的下载安装1.1 CUDA的安装1.2 cuDNN的配置 二、anaconda的安装1.卸载python2.安装anaconda 三、Pytorch、python虚拟环境安装1.创建虚拟环境2.安…

【算法训练营】:期末考试

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 如果需要答案代码可以私聊博主 有任何疑问或者问题&#xff0c;也欢迎私信博主&#xff0c;大家可以相互讨论交流哟~~ 考题12-1 题目描述 输入格式 输出格式 输出到标准输出。 输出一行一个整数…

php 把数字转化为大写中文

1. 120002129.25 转化后壹億贰仟萬贰仟壹佰贰拾玖圆贰角伍分2. 12000.2145 转化后壹萬贰仟圆贰角壹分肆厘伍毫3. 1020001211 转化后壹拾億贰仟萬壹仟贰佰壹拾壹圆整大致思路这样的: 从小数点分割成两部分,整数部分和小数部分分别处理。 整数四个一组进行处理,用substr函数分…

电销平台架构的演变与升级

简介 信也科技电销平台承载了公司400多坐席的日常外呼任务&#xff0c;随着公司业务规模不断增长&#xff0c;业务复杂度不断提升&#xff0c;营销模式需要多样化&#xff0c;营销流程需要更加灵活。为了更好地赋能业务、提高客户转化率&#xff0c;电销平台不断升级优化&#…

springboot快速构建项目

1.Spring的基本步骤 2.构建项目 第一次下包速度比较慢&#xff0c;可以考虑使用镜像 至此项目构建完成 3.启动并配置数据库 新建一个数据库&#xff0c;新建一个表 下面这里也可以【重构-重命名】为yml后缀&#xff08;代码可粘下面的&#xff0c;后面有写&#xff09; Yml后…

FreeRTOS_day2

作业&#xff1a;1.使用ADC采样光敏电阻数值&#xff0c;如何根据这个数值调节LED灯亮度。 2.总结DMA空闲中断接收数据的使用方法 打开DAM,允许接收外部设备数据&#xff0c;调用中断接收回调函数

Eclipse调试技巧 条件断点 监视

实验代码 import java.util.Scanner;public class Test {// 判断n是否为质数public static boolean isPrime(int n){if (n < 2)return false;for (int i 2; i < n; i){if (n % i 0)return false;}return true;}public static void main(String[] args){Scanner scanne…