石家庄企业网站开发,2019网站建设有限公司,长沙制作公园仿竹围栏厂家电话,郑州网站建设彳汉狮网络当我们在做系统性能#xff0c;稳定性#xff0c;高可用等特殊场景的测试时#xff0c;往往要对计算机的硬件资源做出比较苛刻的限制#xff0c;因此需要最简便的办法增加CPU#xff0c;内存#xff0c;磁盘#xff0c;网络等硬件环境的资源压力。下面介绍实现这些操作的…当我们在做系统性能稳定性高可用等特殊场景的测试时往往要对计算机的硬件资源做出比较苛刻的限制因此需要最简便的办法增加CPU内存磁盘网络等硬件环境的资源压力。下面介绍实现这些操作的最简便手段。
最好的办法是不借助外部第三方工具有系统本身的命令或功能实现效果linux上有一个非常简单高效的工具 stress 从帮助文件可知这个工具可以执行CPU负载IO负载内存负载磁盘负载。
一 使用方法
-v -q -n -t 这些常规的简单参数用户可以自己尝试使用我们主要讲解4个负载压力相关的使用方法。
1 CPU压力
stress 消耗 CPU 资源是通过调用 sqrt 函数计算由 rand 函数产生的随机数的平方根实现。
执行stress -v -c 6
详细显示给CPU的6个核心增加压力。 给几个核心加压可以根据实际硬件情况和加压力度灵活判断。 2 IO压力
消耗 IO 资源 每个进程都反复调用 sync 函数将内存上的内容写到硬盘上。
执行stress -i 4
会生成4个线程反复执行内存到硬盘的写入操作。 随着IO压力的产生sy和wa会不断升高。 3 内存压力
内存压力有几个参数
--vm N 生成N个进程在malloc()/free()上交替。
--vm-bytes B 每个vm工作进程的malloc B字节默认值为256MB
--vm-stride B 每B字节触摸一个字节默认值4096不断的给部分内存赋值
--vm-hang N 空闲前睡眠N秒默认为none0为inf
--vm-keep 重新分配内存而不是释放后重新分配
执行stress --vm 4 --vm-bytes 500M --vm-keep 创建4个进程每个进程分配500M内存 --vm-keep使这4个进程持续占用内存如果用 –vm-hang 则表示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒然后释放内存一直重复执行这个过程。
–vm-keep 和 --vm-hang 在运行时CPU状态有区别
–vm-keep一直在进行默认的 stride 操作user 非常高(cpu 在用户态忙碌)。
--vm-hang两种状态不断切换但整体上看 CPU 的负载并不高。
执行stress --vm 4 --vm-bytes 500M --vm-hang 2 4 磁盘压力 执行stress -d 2 --hdd-bytes 10M
创建两个进程向磁盘反复写入10M数据量的数据但此处有一个未知就是多磁盘环境时写在哪个设备上。