searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Fio性能测试

2023-07-07 08:36:14
150
0

一、Fio基本介绍

Fio介绍:FIO(Flexible I/O Tester)是一个用于测试磁盘、文件系统、块设备和网络设备性能的工具。它可以模拟不同类型的I/O负载,包括随机或顺序读写、混合读写、随机或顺序访问等。FIO提供了丰富的选项和参数,可以对测试进行高度定制化配置,以满足各种应用场景和需求。FIO是开源软件,可在Linux、Unix、Windows等多种平台上运行

二、基本操作

需要在虚拟机里面安装fio文件,但是虚拟机不能直接连接外网,也不能通过rz上传文件,所以想到的办法就是将fio文件在本地下载下来,然后做成iso镜像,之后将这个镜像做成本地盘,将这个本地盘挂载到虚拟机上,就能够查看fio文件了

1、下载fio文件,通过官网获取

2、将fio文件做成iso镜像,需要采用UltralSO工具,将fio.tar.gz文件做成镜像

3、登陆到虚拟机所在的宿主机上,通过rz 将iso镜像文件上传到计算节点上,之后挂载到对应的虚拟机上

4、到虚拟机里面查看对应的fio文件

截止到目前,将fio文件上传到虚拟机里面

5、在进行性能测试的时候,发现fio异步任务的时候,需要安装libaio这个包,所以也需要下载这个包,可以找同事要这个包,也需要上传到虚拟机里面

三、安装fio

1、安装fio之前,需要先安装libaio

rpm -ivh libaio.rpm  --nodes --force

2、安装fio文件

tar -zxvf fio.tar.gz

cd fio

./configure

make

make install

在进行make安装的时候可能会报错,报错信息如下,在对应的文件里面添加【#include<sys/sysmacros.h>】

之后执行fio命令是否能够成功来确认fio是否安装成功

四、进行fio性能测试

fio总共有100+个参数,很多参数我们用不到,下面选择性能测试中一些常用的参数进行说明。

首先来看一条fio命令:

fio -name=test -filename=testfile  -group_reporting  -iodepth=16 -ioengine=gfapi_async -volume=vol_rep2 -nrfiles=1 -rw=randwrite -bs=4k -size=1G -threads -numjobs=1 -direct=1

该命令式在挂载点下随机写一个1G的文件,测试挂载点的性能,具体参数的意义如下:

-name: 用于输出信息用的名字,在上述命令行的使用方法中,表明一个新job的开始,缺省为job name

-filename: 测试文件名称,通常选择需要测试的盘的data目录

-group_reporting:汇总所有的信息,而不是每个job都显示具体的结果

-iodepth:本次测试的队列深度

-ioengine:负载产生的引擎,定义job向文件发起io的方式。Fio的引擎有很多,具体可以网上搜一下,常用的引擎为libaio 和 gfapi_async,测试过程中,如果要模拟api的方式测试挂载点的性能则用gfapi_async,测试裸盘或其他块设备性能时,选用libaio即可。

-nrfiles:每个进程生成的文件数量

-rw: 读写方式,顺序读,顺序写,随机读,随机写,混合读写

-bs: 块大小,一般测试4k, 8k, 64k, 128k, 1M

-size: 测试文件的大小

-threads:fio默认会使用fork()创建job,如果这个选项设置的话,fio将使用pthread_create来创建线程

-numjobs:创建的线程数量

-direct: 测试过程绕过机器自带的buffer,使得测试结果更加真实

-runtime:测试时长

-bssplit=4k/40:64k/30:1M/30: 混合块大小,4k:64k:1M = 4:3:3

bsrange=512-2048:块大小的范围,同bs参数

-rw=randrw, -rwmixread=70:混合读写7:3

五、测试报告

一般关注的指标包括bw、iops、util这些指标,数值越高性能越好

0条评论
0 / 1000
乐道
4文章数
0粉丝数
乐道
4 文章 | 0 粉丝