制造linux下的极端系统资源消耗

原新浪博客(http://blog.sina.com.cn/billsona)搬迁至此。


前言

业务测试过程中,经常需要验证CPU耗尽、内存耗尽、磁盘占满等相对极端的情况。
如何有效的制造上述场景是工作的关键。


1.CPU占用

对于CPU利用率100%的场景,可以通过下述命令来实现:

for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done

下图说明了执行该命令前后,CPU的利用情况对比:
在这里插入图片描述
测试完成后,只需要将上图中,对应COMMAND为“dd”的进程杀掉即可将系统恢复正常。
在这里插入图片描述

2. 磁盘占用

对于磁盘占用,我们也可以通过dd命令,很方便的将磁盘占满:

dd if=/dev/zero of=/testfile bs=10M count=2000

在这里插入图片描述
(1)“/dev/zero”是linux中的一个伪文件,作为输入设备,它能够提供无穷无尽的0(ASCII),这是一个用来初始化文件的好工具。

(2)testfile是自己定义个一个文件名,该文件被定义放在了“/”根目录下面。

(3)bs=10M指定了块(block size)的大小,这里也可以指定单位为K、G等;

(4)count=2000指定了写入块的数量,跟块大小一起配合,可以很容易的将指定的目录填满。

实际上,上述命令就是在指定的目录下面生成一个固定大小的文件,并用0初始化该文件。

测试结束后,将对应目录下的这个测试文件删除,即可使系统恢复正常。

3.内存占用

对于内存占用,目前没有找到特别有效的方法,大多数使用死循环等消耗内存的方法,会直接将系统卡死,起不到测试的效果,不可取。

如果测试环境是虚拟机的话,可以通过减小虚拟机内存的方式来变相的达到测试目的。测试完成后,将虚拟机内存改回正常值即可。

如各位读者有更好的方法,还望至不吝指教。

猜你喜欢

转载自blog.csdn.net/lipeixinglive/article/details/113740110