关于压力测试,主要就是模拟在 linux 上的高负载情况,包括 cpu、内存、磁盘、网络等,在这种情况下来观察高负载情况下的系统表现, 简单的压测,可以写一些计算的脚本,来让 cpu 和内存维持高使用率,也可以循环使用 dd 等让磁盘等 io 变高。不同的场景就需要我们写不同的脚本,稍微有点麻烦。今天要来推荐的工具是 linux 下的压力测试工具,stress 的升级版本 stress-ng,与 stress 兼容,但是又比 stress 强大。官方地址如下:https://github.com/ColinIanKing/stress-ng废话不多说我们来使用一下康康
stress-ng 安装
-
执行命令
yum install stress stress-ng -y
安装即可
设备信息查询
首先我们需要获取我们服务器本身的硬件信息,常用的查询命令,可以参考下面
-
查看 cpu 个数 :
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
输出的即为当前的物理 cpu 个数 。查询每个物理 cpu 的核数cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑 cpu 的核数:cat /proc/cpuinfo| grep "processor"| wc -l
(一般情况下,逻辑 cpu=物理 CPU 个数 × 每颗核数) -
查询内存大小 : cat /proc/meminfo 或者 更直观的查看内存的命令:
free -h
看 total mem 即可 -
查看磁盘大小:
df -h
一般来说挂载在 '/'下的 size 就是 -
查询 cpu 使用
top
-
查询内存使用情况
free -h
里的 used
stress-ng 的基础使用
-
stress-ng --cpu 2 --timeout 10
压测 2 个 cpu,持续 10 秒,然后我们再开一个终端,在里面输入top -d 1
之后,再按 1,即可看到当前 2 个 cpu 的占用率,你就会发现都是满的,当压测时间结束之后,cpu 的使用率将就恢复正常了 -
stress-ng --vm 2 --vm-bytes 1G --timeout 100s
压测内存,持续 100 秒,使用 2 个进程占用 1G 内存,你也可以换成 500M 什么的 -
stress-ng --hdd 3 --hdd-bytes 20G --timeout 180s
压测磁盘 io。压测磁盘 io,开启 3 个磁盘 IO 进程,每次写 20GB 数据到磁盘,180 秒后退出。相信这 3 个命令已经足够我们基本的进行压测使用了。更多的使用方法,可以使用stress-ng --help
来查询
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
-
文档获取方式:
-
加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取