• http://www.rscchayi.com
  • |
    |
    |
    |
    移动端

    在Linux上简单模拟系统负载的方法

    系统管理员通常需要探索在不同负载对应用性能的影响。这意味着必须要重复地人为创造负载。当然,你可以通过专门的工具来实现,但有时你可能不想也无法安装新工具。

    作者:Elliot Cooper来源:Linux中国|2018-07-23 14:36

    年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


     在Linux上简单模拟系统负载的方法

    系统管理员通常需要探索在不同负载对应用性能的影响。这意味着必须要重复地人为创造负载。当然,你可以通过专门的工具来实现,但有时你可能不想也无法安装新工具。

    每个 Linux 发行版中都自带有创建负载的工具。他们不如专门的工具那么灵活,但它们是现成的,而且无需专门学习。

    CPU

    下面命令会创建 CPU 负荷,方法是通过压缩随机数据并将结果发送到 /dev/null

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

    如果你想要更大的负荷,或者系统有多个核,那么只需要对数据进行压缩和解压就行了,像这样:

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

    按下 CTRL+C 来终止进程。

    内存占用

    下面命令会减少可用内存的总量。它是通过在内存中创建文件系统然后往里面写文件来实现的。你可以使用任意多的内存,只需哟往里面写入更多的文件就行了。

    首先,创建一个挂载点,然后将 ramfs 文件系统挂载上去:

    1. mkdir z
    2. mount -t ramfs ramfs z/

    第二步,使用 dd 在该目录下创建文件。这里我们创建了一个 128M 的文件:

    1. dd if=/dev/zero of=z/file bs=1M count=128

    文件的大小可以通过下面这些操作符来修改:

    • bs= 块大小。可以是任何数字后面接上 B(表示字节),K(表示 KB),M( 表示 MB)或者 G(表示 GB)。
    • count= 要写多少个块。 

    磁盘 I/O

    创建磁盘 I/O 的方法是先创建一个文件,然后使用 for 循环来不停地拷贝它。

    下面使用命令 dd 创建了一个全是零的 1G 大小的文件:

    1. dd if=/dev/zero of=loadfile bs=1M count=1024

    下面命令用 for 循环执行 10 次操作。每次都会拷贝 loadfile 来覆盖 loadfile1

    1. for i in {1..10}; do cp loadfile loadfile1; done

    通过修改 {1..10} 中的第二个参数来调整运行时间的长短。(LCTT 译注:你的 Linux 系统中的默认使用的 cp 命令很可能是 cp -i 的别名,这种情况下覆写会提示你输入 y 来确认,你可以使用 -f 参数的 cp 命令来覆盖此行为,或者直接用 /bin/cp 命令。)

    若你想要一直运行,直到按下 CTRL+C 来停止,则运行下面命令:

    1. while true; do cp loadfile loadfile1; done 

    【编辑推荐】

    1. Linux进程间通信——使用共享内存
    2. 2018 年最受欢迎 Linux 发行版
    3. 弃用正版Win10/Office!巴塞罗那拥抱开源Linux
    4. Linux中12 个IP命令的范例
    5. 在不重启的情况下为Vmware Linux客户机添加新硬盘
    【责任编辑:庞桂玉 TEL:(010)68476606】

    点赞 0
    分享:
    大家都在看
    猜你喜欢

    读 书 +更多

    网管第一课——计算机网络原理

    本书是《网管第一课》系列图书中的第一本,是专门针对高校和培训机构编写的,其主要特点是内容细而精、针对性强。书中内容全是经过精心挑选...

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊
    九江论坛 渑池县论坛 振安区论坛 北关论坛 阿克喀什乡论坛
    油柑头论坛 青州市论坛 东莞市论坛 洑口乡论坛 延吉市论坛