关于Fio磁盘性能测试

由于公司项目需要,需要用Fio对磁盘进行性能测试。废话不多说直接上干货!!!

先从安装说起吧,网上千篇一律的安装方法,但对于小白来说有时候会出问题,导致安装不上。现在说一个有效的安装方法(主要针对于contos 7)

安装步骤:
1.yum install fio 先试试这个命令能否安装
2.yum install epel-reease 如果报错(找不到fio包)再试试这个命令
3.yum search all epel 第二条命令如果不能成功运行请运行此命令
4.yum install fio 运行第三条命令完成后,请在运行此命,就可安装成功

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

      filename=/dev/emcpowerb 支持文件系统或者裸设备,-filename=/dev/sda2或-                  filename=/dev/sdb
      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=5g                  本次的测试文件大小为5g,以每次4k的io进行测试
      numjobs=30               本次的测试线程为30
      runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
      ioengine=psync           io引擎使用pync方式,如果要使用libaio引擎,需要yum        install libaio-devel包
      rwmixwrite=30            在混合读写的模式下,写占30%
      group_reporting          关于显示结果的,汇总每个进程的信息

此外
lockmem=1g 只使用1g内存进行测试
zero_buffers 用0初始化系统buffer
nrfiles=8 每个进程生成文件的数量

3.Fio测试场景及生成报告详解

测试场景:

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

100%随机,100%写, 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=xxk -size=xxxG -numjobs=xxx -runtime=xxx -group_reporting -name=xxx

100%顺序,100%读 ,4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=xxxk -size=xxxG -numjobs=xxx -runtime=xxxx -group_reporting -name=xxx

100%顺序,100%写 ,4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=xxxk -size=xxxG -numjobs=xxx -runtime=xxx -group_reporting -name=xxx
100%随机,70%读,30%写 4K
fio -filename=/dev/emcpowerb -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=xxxk -size=xxxxG -numjobs=xxx -runtime=xxx -group_reporting -name=xxx

结果报告查看
这里写图片描述
io=执行了多少M的IO

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=总共执行了多少size的IO
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=磁盘利用率


版权声明:本文为Mr_zhang_404原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。