linux模拟内存使用方法,Linux 中模拟多种系统负载的方法

近期在研究系统监控预警,包括但不限于:CPU 使用率预警、内存使用率预警、磁盘使用率预警以及 IO 预警。

在测试过程中,需要模拟系统负载来验证预警规则是否有效。故总结几种模拟负载的方式,以供日后查询。

CPU 使用率

方法很多,最简单直接的有:

cat /dev/zero > /dev/null

cat /dev/urandom | gzip -9 > /dev/null

dd if=/dev/zero of=/dev/null

yes > /dev/null

...

以上方法仅能对单核施加压力,多核心可以使用 for 循环 + 命令结尾 &,或使用多个管道连接来实现:

for i in 'seq 1 $(cat /proc/cpuinfo | grep "physical id" | wc -l)'; do cat /dev/zero > /dev/null & done

cat /dev/urandom | gzip -9 | gzip -d | gzip -9 | gzip -d > /dev/null

磁盘使用率

上节我们使用到了 dd 命令,该命令结合 /dev/zero 也可以被用于输出一定大小的文件,从而模拟磁盘使用率。

例如:

dd if=/dev/zero of=loadfile bs=1M count=1024 # 输出 1024M 的 \0 到 loadfile

磁盘 IO

利用刚刚生成的 loadfile,加上 cp 命令可以一定程度地模拟顺序 IO:

while true; do cp loadfile loadfile1; done # 无限循环复制文件

内存使用率

回看前面的几项需求,其实都可以通过 stress 工具和 lookbusy 工具实现,并且更加精准、可控、易用。

以下分别列出几个例子,方便照抄(2333)。

stress --cpu 2 # 产生 2 个工作进程对 CPU 施加压力,也就是将会占用两个 CPU 核心

stress --vm 1 --vm-bytes 128M --vm-hang 0 # 产生 1 个工作进程,占用 128MB 内存并保持

stress --io 1 # 产生 1 个工作进程对 IO 施加压力

lookbusy -c 50 # 占用所有 CPU 核心各 50%

lookbusy -c 50 -n 2 # 占用两个 CPU 核心各 50%

lookbusy -c 50-80 -r curve # 占用所有 CPU 核心在 50%-80% 左右浮动

lookbusy -c 0 -m 128MB -M 1000 # 每 1000 毫秒,循环释放并分配 128MB 内存

lookbusy -c 0 -d 1GB -b 1MB -D 10 # 每 10 毫秒,循环进行 1MB 磁盘写入,临时文件不超过 1GB

以上命令的参数均可结合使用,同时对系统多个维度施加压力。

其它工具

参考

拓展

本作品采用《CC 协议》,转载必须注明作者和本文链接

Former WinForm and PHP engineer. Now prefer Golang and Rust, and mainly working on DevSecOps and Kubernetes.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux,可以使用stress命令来模拟系统负载较高的场景。通过模拟各种高负载情况,我们可以更好地理解系统的瓶颈,并掌握性能检测工具的使用方法。 stress命令的基本用法如下: ``` stress [选项 [参数] ``` 其,选项可以用于指定stress命令的行为,参数用于指定要模拟的高负载场景。 举个例子,如果我们想要模拟CPU负载较高的情况,可以使用下面的命令: ``` stress --cpu 4 --timeout 60s ``` 上述命令,`--cpu 4`表示使用4个CPU核心进行负载,`--timeout 60s`表示持续模拟60秒的高负载。 除了模拟CPU负载,stress命令还可以模拟内存、I/O、线程等不同类型的负载。例如,如果我们想要模拟内存负载较高的情况,可以使用下面的命令: ``` stress --vm 2 --vm-bytes 1G --timeout 60s ``` 上述命令,`--vm 2`表示使用2个虚拟机来进行内存负载,`--vm-bytes 1G`表示每个虚拟机使用1GB的内存,`--timeout 60s`表示持续模拟60秒的高负载使用stress命令可以帮助我们在测试环境模拟不同类型的高负载场景,以便更好地了解系统的性能瓶颈和优化策略。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [linux stress 命令 模拟系统负载](https://blog.csdn.net/whatday/article/details/104477160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Linux系统常用的负载命令](https://blog.csdn.net/acccco/article/details/125727210)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值