如何测试磁盘性能
安装fio工具
FIO 是一个功能强大的工具,用于模拟和测试不同类型的磁盘 I/O 工作负载。
centos 系统执行:yum install fio -y
ubuntu 系统执行:apt install fio -y
创建测试文件
执行下面的指令创建一个1G大小的测试文件
sudo fallocate -l 1G testfile
创建测试配置文件
vi test.fio
[global]
ioengine=libaio
direct=1
runtime=10s
time_based
[read_test]
filename=/data/testfile
rw=read
bs=200k
numjobs=1
[write_test]
filename=/data/testfile
rw=write
bs=200k
numjobs=1
配置解读:
配置文件指定了两个测试部分:read_test 和 write_test,分别用于读取和写入测试。
上述配置文件中,指定了读写的配置,如果只测试读或者只测试写,可以用#把不需要的配置注释掉。
在global中,指定了ioengine 为libaio;runtime=10s指定测试的时间为10s。
在读取测试部分(read_test)中,指定了以下参数:
filename:指定要读取的文件路径为 /data/testfile。
rw:指定操作类型为 read,表示进行读取操作。
bs:指定块大小为 200k,即每次读取的数据块大小为 200 KB。
numjobs:指定并发作业数为 1,测试时查看io如果没有到达最大,可以增加并发数。
在写入测试部分(write_test)中,和read_test含义相同。
这个配置文件将使用 libaio 引擎进行 I/O 操作,并且使用 direct=1 来进行直接 I/O 操作,而不是通过操作系统缓存。
执行测试
测试前先查看目录挂载的磁盘,例如我们要测试/data目录挂载的磁盘,执行:
df -h /data
可以看到/data目录挂载的磁盘为/dev/md0
执行:fio test.fio
执行完毕后可以看到下图:括号中就是我们磁盘的读写tps。
执行:iostat -mx 2 查看磁盘的io情况
上图主要关注红框中的数据,md0是我们测试的磁盘,nvme0n1 和 nvme1n1是NVMe 设备,NVMe(Non-Volatile Memory Express)是一种高性能、低延迟的存储接口协议,用于连接闪存设备到计算机系统。
右侧的%util可以看到我们的Nvme设备利用率已经快到100%了,如果测试时这个值低于90%,需要调大test.fio配置文件中的numjobs数。
rMb/s 和wMb/s 为每秒读和写的磁盘速率。
磁盘测试场景
一般测试三种场景:读写混合、只读、只写。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!