- fio简介
fio是一个性能测试工具,可以针对文件系统或者裸盘进行性能测试。本教程以裸盘进行说明。
- fio的安装
对于centos系统,执行执行yum install fio即可,其它系统请自行查找资料安装。
fio测试不同设备的方法:
测试iscsi:使用iscsi将lun挂载给客户端,然后客户端使用fio对多路径设备/dev/mapper/mpathX进行读写测试即为iscsi性能测试:
fio --ioengine=libaio -filename=/dev/mapper/mpatha
测试krbd:在存储管理界面将lun映射给本地客户端,然后对/dev/rbdX进行读写即为krbd性能测试
fio --ioengine=libaio -filename=/dev/rbd0
测试librbd(对fio有版本要求,2.X有部分不支持):需要先在客户端安装rbd-client,安装完rbd-client之后,需要将存储节点/var/lib/ceph/etc/ceph/XXXXX.conf 文件scp到客户端节点的相同目录下,在客户端节点与存储public网络连接之后即可使用librbd进行测试:
fio --ioengine=rbd -rbdname=120845d0-438b-11eb-81fc-246e9609b932 -pool=4eb9c4b0-433e-11eb-b68a-246e9609b932 -clientname=admin
- fio的使用
读写注意事项:没有写过的数据的盘做读操作之前需要进行写一遍的操作,否则会存在读空数据的情况,估计读到bitmap就返回数据了,性能会超级高,不能代表存储实际性能。特殊场景需要构造磁盘存在空穴的情况,也可以使用fio进行进行构造。
首先,我们来把磁盘写一遍
fio --ioengine=libaio -filename=/dev/mapper/mpatha -direct=1 -rw=rw -bs=1024k -rwmixread=0 -iodepth=128 -numjobs=1 -group_reporting -name=test
ioengine fio3.7版本中就支持25种不同的引擎模式,其中常用的为libaio(linux原生异步io,我们的测试也基本上是在这个模型下测试的);rbd即使用librbd方式来执行读写(相比iscsi方式访问压力会更稳定)。默认的ioengine为sync,即一个io写下去了之后会确认完成读写才会执行下一个io。还有一个是psync,比sync又多了个原子操作的概念。
Filename即你要测试裸磁盘或者文件系统里的文件
Direct 通常和libaio一起使用,=1即不使用缓存
Rw定义读写模型,有9个定义,常用的有read write randread randwrite rw(readwrite) randrw
Rwmixread/rwmixwrite 读写模型种读和

fio是一款强大的性能测试工具,适用于文件系统和裸盘的读写性能测试。本文介绍了fio的安装方法,以及如何针对iscsi、krbd和librbd设备进行测试。此外,还详细讲解了fio的参数配置,如ioengine、filename、direct、rw等,并通过实例展示了如何进行读写测试。最后,分析了fio测试结果,包括关注的关键性能指标,以及如何记录和解读性能数据。
最低0.47元/天 解锁文章

469

被折叠的 条评论
为什么被折叠?



