如何快速对磁盘的性能进行压力测试

2022-06-07 08:31:43 浏览数 (1)

介绍: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

0 人点赞