磁盘iops 测试 fio

磁盘iops 测试 fio 及报错解释

 

     I/O输入/输出(Input/Output),读和写,提高缓存(cache)和做磁盘阵列(RAID)能提高存储IO性能。

     IOPS (英文:Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库、存储等场合,衡量随机访问的性能。

  存储端的IOPS性能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要三次访问存储才可以完成。例如,主机写入一个最小的数据块,也要经过"发送写入请求、写入数据、收到写入确认"等三个步骤,也就是3个存储端访问。

     Linux下常用Fio、dd工具,  Windows下常用IOMeter。

     FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。  

  注意:不要对有数据的磁盘或者分区做测试,会破坏已存在的数据

 

FIO 官网地址:http://freshmeat.net/projects/fio/

一,FIO安装
下载源码包:   wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz
安装依赖软件:yum install libaio-devel   我们一般使用libaio,发起异步IO请求。
解压:            tar -zxvf fio-2.0.7.tar.gz
安装:            cd fio-2.0.7
编译:            make  
安装:            make install  

二、FIO用法:  也可以多个任务时可以写在job file里面 

下面用命令直接输出的方法:

随机读的测试命令:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=50G -numjobs=10 -runtime=1000 -group_reporting -name=mytest

 

说明:
filename=/dev/sdb1     测试文件名称,通常选择需要测试的盘的data目录。 只能是分区,不能是目录,会破坏数据。
direct=1                     测试过程绕过机器自带的buffer。使测试结果更真实。

iodepth 1                   队列深度,只有使用libaio时才有意义,这是一个可以影响IOPS的参数,通常情况下为1。

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

ioengine=psync           io引擎使用pync方式 
bs=4k                   单次io的块文件大小为4k
bsrange=512-2048         同上,提定数据块的大小范围
size=50G    本次的测试文件大小为50g,以每次4k的io进行测试,此大小不能超过filename的大小,否则会报错。
numjobs=10               本次的测试线程为10.
runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息。

 

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

 

read 顺序读

write 顺序写

rw,readwrite 顺序混合读写

randwrite 随机写

randread 随机读

randrw 随机混合读写

 

顺序读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=50G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

混合随机读写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=4k -size=50G -numjobs=30 -runtime=100 -group_reporting -name=mytest -io

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值