首页 > 代码库 > 使用fio测试磁盘I/O性能
使用fio测试磁盘I/O性能
简介:
fio是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
安装fio:
官网网站:http://brick.kernel.dk/snaps/
wget http://brick.kernel.dk/snaps/fio-2.2.10.tar.gz (从官网下载fio的tar包)
tar -zxvf fio-2.2.10.tar.gz (解压)
cd fio-2.2.10
make && make install (安装)
yum install libaio-devel (为了支持同步I/O)
fio分随机读,随机写,顺序读,顺序写,混合随机读写模式。
fio参数:
filename=/dev/sdb #测试文件(设备)的名称,通常选择需要测试的data目录(可以通过冒号分割同时指定多个文件,如filename=/dev/sda:/dev/sdb。)
direct=1 #测试过程绕过机器自带的buffer(缓冲区),使测试结果更真实
rw=randwrite · #测试随机写的I/O
rw=randread #测试随机读的I/O
rw=randrw #测试随机读写的I/O
bs=4k #单次I/O的块文件大小为4K
size=20G #本次测试的文件大小为20G,以每次4K的I/O进行测试
numjobs=30 #本次的测试线程为30个
runtime=600 #测试时间为600秒,如果不写,则一直将20G文件分每次4K写完为止
ioengine=psync #I/O引擎使用psync方式(I/O引擎,现在fio支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O。关于同步异步,阻塞和非阻塞模型可以参考文章“使用异步 I/O 大大提高应用程序的性能”。
http://www.ibm.com/developerworks/cn/linux/l-async/)
group_reporting #关于显示结果的,汇总每个进程的信息
name #指定job的名字,在命令行中表示新启动一个job。
iodepth #如果ioengine采用异步方式,该参数表示一批提交保持的io单元数。(该参数可参考文章“Fio压测工具和io队列深度理解和误区”。http://blog.yufeng.info/archives/2104)
thread #线程
fio实例:
随机读4K:
fio -filename=/dev/sdb:/dev/sdc:/dev/sdd -direct=1 -iodepth=16 -thread -rw=randread -ioengine=libaio -bs=4k -size=20G -numjobs=30 -runtime=600 -group_reporting -name=mytest
随机写4K:
fio -filename=/dev/sdb:/dev/sdc:/dev/sdd -direct=1 -iodepth=16 -thread -rw=randwrite -ioengine=libaio -bs=4k -size=20G -numjobs=30 -runtime=600 -group_reporting -name=mytest
顺序读1M:
fio -filename=/dev/sdb:/dev/sdc:/dev/sdd -direct=1 -iodepth=16 -thread -rw=read -ioengine=libaio -bs=1M -size=20G -numjobs=30 -runtime=600 -group_reporting -name=mytest
顺序写1M:
fio -filename=/dev/sdb:/dev/sdc:/dev/sdd -direct=1 -iodepth=16 -thread -rw=write -ioengine=libaio -bs=1M -size=20G -numjobs=30 -runtime=600 -group_reporting -name=mytest
混合随机读写:
fio -filename=/dev/sdb:/dev/sdc:/dev/sdd -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
实例测试:
使用fio测试磁盘I/O性能
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。