关于压力测试,主要就是模拟在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
来查询
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。