硬盘FIO测试操作规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬盘FIO测试操作规范
硬盘FIO测试操作规范
一.测试前准备工作
首先,准备两块硬盘,一块为待测硬盘,一块为系统硬盘。
其次,在系统硬盘中安装Ubuntu系统(32位优先)。
最后,安装好系统后关机拔掉电源,然后把待测硬盘接入到电脑中(台式机),然后开机。
二.安装测试程序
第一,在网上下载fio-2.0.7.tar.gz和libaio-0.3.106.tar.gz两个程序包。
将两个程序包拷贝到系统根目录下。
第二,解压程序包,命令如下:
tar -zxvf libaio-0.3.106.tar.gz
第三,返回解压的文件下,命令如下:
cd libaio-0.3.106
第四,编译和安装,命令如下:
make
make install
按照第三步到第五步的方法进行fio fio-2.0.7的安装。
三.对硬盘进行测试
对硬盘随机读测试
随机读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread
-ioengine=libaio -bs=16k -size=200G -numjobs=10 -runtime=1000
-group_reporting -name=mytest
说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的
data目录。
direct=1 测试过程绕过机器自带的buffer。
使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine= libaio io引擎使用libaio方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。
顺序读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read
-ioengine= libaio -bs=16k -size=200G -numjobs=30 -runtime=1000
-group_reporting -name=mytest
随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite
-ioengine= libaio -bs=16k -size=200G -numjobs=30 -runtime=1000
-group_reporting -name=mytest
顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write
-ioengine= libaio -bs=16k -size=200G -numjobs=30 -runtime=1000
-group_reporting -name=mytest
混合随机读写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw
-rwmixread=70 -ioengine= libaio -bs=16k -size=200G -numjobs=30
-runtime=100 -group_reporting -name=mytest -ioscheduler=noop 四.实际测试范例:
[root@localhost ~]# fio -filename=/dev/sdb1 -direct=1 -iodepth 1
-thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k
-size=200G -numjobs=30
-runtime=100 -group_reporting -name=mytest1
mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync,
iodepth=1
...
mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync,
iodepth=1
fio 2.0.7
Starting 30 threads
Jobs: 1 (f=1): [________________m_____________] [3.5% done]
[6935K/3116K /s] [423 /190 iops] [eta 48m:20s] s]
mytest1: (groupid=0, jobs=30): err= 0: pid=23802
read : io=1853.4MB, bw=18967KB/s, iops=1185 , runt=100058msec
clat (usec): min=60 , max=871116 , avg=25227.91, stdev=31653.46
lat (usec): min=60 , max=871117 , avg=25228.08, stdev=31653.46
记录下bw和iops的值!。