ChaosBlade混沌测试—模拟内存篇

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

ChaosBlade混沌测试—模拟内存篇

上期文章“ChaosBlade混沌测试—模拟CPU负载篇”中,我们介绍了如何使用 ChaosBlade 模拟 CPU 负载的实验。


本期文章我们继续介绍 ChaosBlade 的功能使用方法——如何使用 ChaosBlade 模拟内存压力,以测试系统在高内存负载下的稳定性和性能。想提高性能测试效率的小伙伴,一定要往下看!




1 ChaosBlade模拟内存实验介绍

由于 ChaosBlade 目前计算内存大小是通过 memory.stat 等文件计算,所以和 free 命令计算不一致,同 top 命令一致,验证时需使用 top 命令查看内存使用。


参数说明如下:


参数名

说明

类型

mem-percent

内存使用率

String

取值是 0 到 100 的整数

mode

内存占用模式

string

ram 和 cache 两种,例如 --mode ram。ram 采用代码实现,可控制占用速率,优先推荐此模式;cache 是通过挂载tmpfs实现;默认值是 --mode cache

reserve

保留内存的大小

String

单位是MB,如果 mem-percent 参数存在,则优先使用 mem-percent 参数

rate

内存占用速率

String

单位是 MB/S,仅在 --mode ram 时生效

timeout      

设定运行时长

string

单位是秒,通用参数


2 具体实例

使用Chaosblade模拟内存实验前,服务器的总内存大小16G,已使用22%


实验一: 用ram模式,执行内存占用 60%


执行如下命令:

blade create mem load --mode ram --mem-percent 60



可通过 top指令查看内存情况。



从上图可以看到,内存总量16G,占用9.26G,内存使用率=9.26/16*100%60%,实验生效。


接下来销毁实验,相关命令如下:


blade destroy cb285df063476001



实验二: 用ram模式,保留 2G 内存,速度100


执行如下命令:

blade  create  mem load  --mode ram --reserve 2048 --rate 100


返回code200,执行成功

{"code":200,"success":true,"result":"14216f6602f063d6"}


可通过 top指令查看内存情况。



从上图可以看到,内存总量16G,空闲内存2G,实验生效。


接下来销毁实验,相关命令如下:

blade  destroy 14216f6602f063d6


返回code200,实验销毁成功:

{"code":200,"success":true,"result":{"target":"mem","action":"load","flags{"mode":"ram","rate":"100","reserve":"2048"},"ActionProcessHang":false}}


3 实现原理

ram 模式采用代码申请内存实现;

cache 模式采用 dd、mount 命令实现,挂载 tmpfs 并且进行文件填充。


4 常见问题

Q如果执行了内存满载,无法恢复,如何处理?

A:重启机器恢复。针对指定内存占用的场景,如果触发内存占用满载,即使指定了 --timeout 参数,也可能出现通过 blade 工具无法恢复的情况,可通过重启机器解决!!!推荐指定内存百分比


划重点


ChaosBlade 可以模拟系统内存压力,以测试系统在高内存负载下的稳定性和性能。

内存占用模式有2种:ram 模式和 cache 模式

  • ram 模式采用代码申请内存实现;

  • cache 模式采用 dd、mount 命令实现,挂载 tmpfs 并且进行文件填充。




#往期推荐#

# ChaosBlade混沌测试—模拟CPU负载篇

业务代码故障注入指南,测试必看!

Nmon工具全攻略,性能监控与测试必学!

JMeter高阶系列—BeanShell脚本精准提取


更多精彩内容,“码”上了解!↓

上传图片

ChaosBlade混沌测试—模拟内存篇

上期文章“ChaosBlade混沌测试—模拟CPU负载篇”中,我们介绍了如何使用 ChaosBlade 模拟 CPU 负载的实验。本期文章我们继续介绍 Chao...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息