linux下压力测试工具stress(cpu,内存,io)

压测工具stress

安装

  • stress-1.0.2-1.el7.rf.x86_64.rpm下载地址,centos7适用:
    fr2.rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm
    安装:
    rpm -Uivh stress-1.0.2-1.el7.rf.x86_64.rpm

  • stress-ng源码下载:
    https://kernel.ubuntu.com/~cking/tarballs/stress-ng/
    编译:
    make
    安装:
    sudo make install

  • yum安装
    yum install -y epel-release
    yum intsall -y stress

压力测试

消耗 CPU 资源

stress -c 2
(使用htop或者top查看想打满几颗cpu就输入,对应数字即可)

消耗内存资源

#模拟产生2个进程,每个进程分配2个G内存
stress --vm 2 --vm-bytes 2000M --vm-keep

在这里插入图片描述
使用top可以看到,内存free减少,wa和la明显变大很多

无限制消耗 IO 资源

#产生 4 个进程,每个进程都反复调用 sync 函数将内存上的内容写到硬盘上
stress -i 4

使用iotop 或者iostat 查看io资源

指定文件大小,压测磁盘io

#创建一个进程不断的在磁盘上创建 10M 大小的文件并写入内容
stress -d 1 --hdd-bytes 10M

测试磁盘读写能力

使用time dd命令:
/dev/zero 是一个伪设备,它只产生空字符流,对它不会产生IO
/dev/null 是伪设备,相当于黑洞,of到该设备不会产生IO

#1. 纯测试磁盘写速度
    time dd if=/dev/zero of=test.dd  bs=1M count=2000  常见参考值见这个,但不太准确,因为只写入系统缓存就返回
    time  dd if=/dev/zero of=test.dd bs=64k count=16k conv=fsync 较准确
    time dd if=/dev/zero of=test.dd  bs=64k count=4k oflag=dsync  真实写入磁盘
    
# 2. 纯测试磁盘读速度
    time dd if=test.dd of=/dev/null bs=1M   /dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力
    time dd if=/dev/vda1 of=/dev/null bs=8k  测试vda1设备的读能力
    
# 3. 同时测试读写能力
	time dd if=/dev/sdb of=/testrw.dbf bs=4k

参考:

https://www.cnblogs.com/wangcp-2014/p/14153791.html
https://blog.csdn.net/zzhangsiwei/article/details/119989613
https://blog.csdn.net/A642960662/article/details/123030151

你可能感兴趣的:(调优优化,服务器,linux,ubuntu,运维)