如何测试磁盘性能

发布时间:2023年12月28日

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

磁盘测试场景

一般测试三种场景:读写混合、只读、只写。

文章来源:https://blog.csdn.net/qq_42476938/article/details/135261265
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。