如何测试磁盘性能

安装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 为每秒读和写的磁盘速率。

磁盘测试场景

一般测试三种场景:读写混合、只读、只写。
测试中为了测试出磁盘的最大读写速率,需要调大numjobs,bs。
rw=read为顺序读,rw=randread为随机读。写也是一样的道理,随机读写磁盘更符合真实的场景。

  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值