介绍:FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持多种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等
一、安装FIO
yum install -y fio
二、分区数据盘不要挂载
三、编写FIO配置文件,进行压力测试
3-1 配置文件touch /root/fio.conf
代码语言:javascript复制[global]
ioengine=libaio
iodepth=128
time_based
direct=1
thread=1
group_reporting
randrepeat=0
norandommap
numjobs=32
timeout=6000
runtime=120
[randread-4k]
rw=randread
bs=4k
filename=/dev/vdb1
rwmixread=100
stonewall
[randwrite-4k]
rw=randwrite
bs=4k
filename=/dev/vdb1
stonewall
[read-512k]
rw=read
bs=512k
filename=/dev/vdb1
stonewall
[write-512k]
rw=write
bs=512k
filename=/dev/vdb1
stonewall
3-2 参数说明
代码语言:javascript复制-ioengine=libaio 测试方式使用 libaio (Linux AIO,异步 IO)。应用使用 IO 通常有二种方式:同步和异步。同步的 IO 一次只能发出一个 IO 请求,等待内核完成才返回。这样对于单个线程 iodepth 总是小于 1,但是可以透过多个线程并发执行来解决。通常会用 16-32 根线程同时工作把 iodepth 塞满。异步则通常使用 libaio 这样的方式一次提交一批 IO 请求,然后等待一批的完成,减少交互的次数,会更有效率。
-rw=randwrite 测试时的读写策略,可选值 randread (随机读)、 randwrite(随机写)、 read(顺序读)、 write(顺序写)、 randrw (混合随机读写)。
-rw=randwrite 测试时的读写策略,可选值 randread (随机读)、 randwrite(随机写)、 read(顺序读)、 write(顺序写)、 randrw (混合随机读写)。
3-3 执行命令 fio /root/fio.conf
四、结果展示
4-1 随机4K读写
4-2 顺序读写512K
参数对比:
IOPS随机读-4K | IOPS随机写-4K | IOPS读-512K | IOPS写-512K |
---|---|---|---|
2611 | 2483 | 230 | 230 |