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.1.10.tar.gz
yum install libaio-devel
tar -zxvf fio-2.1.10.tar.gz
cd fio-2.1.10
make
make install
二,FIO用法:
随机读:
fio -filename=/root/1test.file -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=1000 -group_reporting -name=mytest
fio -filename=/root/1test.file -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -name=Rand_Read_Testing
说明:
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=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。
顺序读:
fio -filename=/root/1test.file -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
fio -filename=/root/1test.file -direct=1 -iodepth=64 -rw=randread -ioengine=libaio -bs=64k -size=1G -numjobs=1 -runtime=1000 -group_reporting -name=Read_PPS_Testing
随机写:
fio -filename=/root/1test.file -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
fio -filename=/root/1test.file -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -name=Rand_Write_Testing
顺序写:
fio -filename=/root/1test.file -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
fio -filename=/root/1test.file -direct=1 -iodepth=64 -rw=randwrite -ioengine=libaio -bs=64k -size=1G -numjobs=1 -runtime=1000 -group_reporting -name=Write_PPS_Testing
混合随机读写:
fio -filename=/root/1test.file -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
IDE/ATA理论值能达到133MB/s
SATA II理论值可达到300MB/s的接口数据传输率
阿里云磁盘参数https://help.aliyun.com/document_detail/25382.html?spm=5176.7740558.2.6.ShrcNR
参数 | SSD 云盘 | 高效云盘 | 普通云盘 |
---|---|---|---|
最大容量 | 32768 GB | 32768 GB | 2000 GB |
最大 IOPS | 20000 * | 3000 * | 数百 |
最大吞吐量 | 256 MBps | 80 MBps | 30 MBps |
美光(Crucial)M4系列 128G 2.5英寸 SATA-3固态硬盘(CT128M4SSD2) —-780元
500 MB/sec (SATA 6Gb/s),175 MB/sec (SATA 6Gb/s)
随机读取 4k 45,000 IOPS,,随机写入 4k 20,000 IOPS
美光(Crucial)M4系列 64G 2.5英寸 SATA-3固态硬盘(CT064M4SSD2) —-460元
连续读取 (up to) 500 MB/sec (SATA 6Gb/s),连续写入 (up to) 95 MB/sec (SATA 6Gb/s)
随机读取 4k 45,000 IOPS,,随机写入 4k 20,000 IOPS
英特尔 Intel SSDSC2CT120A3K5-CBOX 120G 固态硬盘330 系列 —-1000元
顺序读/写(最高) 500 MB/秒/ 400 MB/秒
随机 4KB读/写(最高) 42,000 IOPS / 52,000 IOPS
英特尔 Intel SSDSC2CT060A3K5-CBOX 60G 固态硬盘330 系列 —-470元
顺序读/写(最高) 500 MB/秒/ 400 MB/秒
随机 4KB读/写(最高) 42,000 IOPS / 52,000 IOPS