服务器阵列的IOPS测试

FIO工具

一、FIO 简述

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

       fio 官网地址:http://freecode.com/projects/fio/

二、FIO 安装

1
2
3
4
5
6
7
8
9
[root@kvm-phy27-jz ~] # yum install -y gcc gcc-c++ libaio-devel
[root@kvm-phy27-jz ~] # cd /usr/local/src
[root@kvm-phy27-jz src] # wget http://brick.kernel.dk/snaps/fio-2.1.10.tar.gz
[root@kvm-phy27-jz ~] # tar -zxf fio-2.1.10.tar.gz
[root@kvm-phy27-jz ~] # cd fio-2.1.10
[root@kvm-phy27-jz fio-2.1.10] # make
[root@kvm-phy27-jz fio-2.1.10] # make install
[root@kvm-phy27-jz fio-2.1.10] # which fio
/usr/local/bin/fio

三、FIO参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
filename= /test .xxx    # 测试文件名称,通常选择需要测试的盘的data目录
direct=1              # 测试过程绕过机器自带的buffer,使测试结果更真实
rw=randwrite          # 测试随机写的I/O 
rw=randrw             # 测试随机写和读的I/O 
bs=16k                # 单次io的块文件大小为16k 
bsrange=512-2048      # 同上,提定数据块的大小范围 
size=200g             # 本次的测试文件大小为200g,以每次4k的io进行测试
numjobs=30            # 本次的测试线程为30 
runtime=1000          # 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psync        # io引擎使用pync方式
rwmixwrite=30      # 在混合读写的模式下,写占30% 
group_reporting       # 关于显示结果的,汇总每个进程的信息 
lockmem=1g            # 只使用1g内存进行测试
zero_buffers          # 用0初始化系统buffer
nrfiles=8             # 每个进程生成文件的数量

四、有关fio命令输出含义

1
2
3
4
5
6
7
8
9
10
11
read                   # 顺序读
write                 # 顺序写
rw,readwrite          # 顺序混合读写
randwrite             # 随机写
randread              # 随机读
randrw                # 随机混合读写
 
bw                    # 带宽,单位KB/s 
iops                  # 每秒钟的IO数
runt                  # 总运行时间
lat (msec)            # 延迟(毫秒),msec为毫秒,usec为微秒

五、常用FIO命令

顺序读:
fio -filename=/test.xxx -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -

group_reporting -name=nolinux_test
随机写:
fio -filename=/test.xxx -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000

-group_reporting -name=nolinux_test
顺序写:
fio -filename=/test.xxx -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -

group_reporting -name=nolinux_test
混合随机读写:
fio -filename=/test.xxx -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -

runtime=100 -group_reporting -name=nolinux_test -ioscheduler=noop

你可能感兴趣的:(服务器阵列的IOPS测试)