压测工具stress

安装

压力测试

消耗 CPU 资源

stress -c 2
(使用htop或者top查看想打满几颗cpu就输入,对应数字即可)
# 在第一个 CPU 核心上运行一个无限循环任务
taskset -c 0 bash -c "while true; do :; done"

消耗内存资源

#模拟产生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

使用stress写入文件可能是buffer/io,导致io很大,但实际写入磁盘并不大

# 如果使用iotop发现不行io很大,但业务影响不大,则使用此dd方法测试
dd if=/dev/zero of=/root/test.dd bs=10240000 count=1000000 oflag=dsync

测试磁盘读写能力

使用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

GitHub 加速计划 / li / linux-dash
10
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:19 天前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐