关于压力测试,主要就是模拟在 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
来查询
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!