基于飞凌嵌入式的OK-MX93xx-C开发板的IMX93试用报告2-fio测试SD性能

本文介绍了fio,一个强大的开源IO测试工具,可用于评估存储系统性能,支持多种I/O场景和引擎。文章详细解释了如何配置fio进行各种测试,如随机读写、混合读写等,并提供了示例测试场景和关键性能指标分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前主流的第三方IO测试工具有fioiometerOrion,这三种工具各有千秋。

fio(Flexible I/O Tester)是一个强大的开源 IO 测试工具,用于评估和性能测试存储系统的性能。它可以在 Linux 系统上模拟各种 I/O 工作负载,并提供丰富的配置选项来满足不同的测试需求。fio 允许通过配置文件或命令行参数来定义各种复杂的 I/O 工作负载。可以设置顺序读写、随机读写、混合读写、随机大小、多线程等不同的测试场景。fio 支持多种 I/O 引擎,包括 sync、mmap、libaio、pvsync、posixaio 等。可以根据需要选择最适合的引擎。

fio 提供丰富的输出结果和统计信息,包括吞吐量、IOPS、延迟、带宽、CPU 使用率等。可以通过这些信息来评估和比较不同存储系统的性能。io 的配置选项非常丰富,可以设置并发数、队列深度、时间间隔、块大小、文件大小等参数,以满足不同的测试需求。

将SD卡插入开发板之后出现下面的log,SD卡自动挂载在mmcblk1的p1上,卡的类型为SDHC接口的32G内存卡。

你可以从 fio 的官方网站(https://github.com/axboe/fio)下载源代码,并按照官方文档提供的编译和安装步骤进行操作。请根据你的需求选择适合的安装方法,并按照上述步骤在 Linux 系统中安装 fio

可以使用fio -help查看每个参数,具体的参数左右可以在官网查看how to文档,如下为几个常见的参数描述

filename=/dev/mmcblk1支持文件系统或者裸设备,

direct=1                 测试过程绕过机器自带的buffer,使测试结果更真实

rw=randwread             测试随机读的I/O

rw=randwrite             测试随机写的I/O

rw=randrw                测试随机混合写和读的I/O

rw=read                  测试顺序读的I/O

rw=write                 测试顺序写的I/O

rw=rw                    测试顺序混合写和读的I/O

bs=4k                    单次io的块文件大小为4k

bsrange=512-2048         同上,提定数据块的大小范围

size=1g                  本次的测试文件大小为1g,以每次4k的io进行测试

numjobs=30               本次的测试线程为30

runtime=18            测试时间为18秒,如果不写则一直将1g文件分4k每次写完为止

ioengine=psync              io引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包

rwmixwrite=30            在混合读写的模式下,写占30%

group_reporting          关于显示结果的,汇总每个进程的信息

lockmem=1g               只使用1g内存进行测试

zero_buffers             用0初始化系统buffer

nrfiles=8                每个进程生成文件的数量

测试场景:

100%随机,100%读, 4K
fio -filename=/dev/mmcblk1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1G -numjobs=50 -runtime=18 -group_reporting -name=rand_100read_4k

100%随机,100%写, 4K
fio -filename=/dev/mmcblk1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=1G -numjobs=50 -runtime=18 -group_reporting -name=rand_100write_4k

100%顺序,100% 4K
fio -filename=/dev/mmcblk1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=1G -numjobs=50 -runtime=18 -group_reporting -name=sqe_100read_4k

100%顺序,100% 4K
fio -filename=/dev/mmcblk1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=1G -numjobs=50 -runtime=18 -group_reporting -name=sqe_100write_4k

100%随机,70%读,30% 4K
fio -filename=/dev/mmcblk1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=1G -numjobs=50 -runtime=18 -group_reporting -name=randrw_70read_4k

io=执行了多少MIO

bw=平均IO带宽
iops=IOPS
runt=线程运行时间
slat=提交延迟
clat=完成延迟
lat=响应时间
bw=带宽
cpu=利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO
IO complete=Like the above submit number, but for completions instead.
IO issued=The number of read/write requests issued, and how many of them were short.
IO latencies=IO完延迟的分布

io=总共执行了多少sizeIO
aggrb=group总带宽
minb=最小.平均带宽.
maxb=最大平均带宽.
mint=group中线程的最短运行时间.
maxt=group中线程的最长运行时间.

ios=所有group总共执行的IO.
merge=总共发生的IO合并数.
ticks=Number of ticks we kept the disk busy.
io_queue=花费在队列上的总共时间.
util=磁盘利用率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值