当我们在做系统性能,稳定性,高可用等特殊场景的测试时,往往要对计算机的硬件资源做出比较苛刻的限制,因此需要最简便的办法增加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个线程,反复执行内存到硬盘的写入操作。