评测工具:FIO
工具官网:https://fio.readthedocs.io/en/latest/index.html
ECS配置:CPU: 2核 内存: 8 GB OS:centos7
yum install fio -y
测试随机写IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=iotest
测试随机读IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=iotest
测试顺序写吞吐量:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=iotest
测试顺序读吞吐量:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=iotest
测试IO读取延迟:
fio -direct=1 -iodepth=1 -rw=randread -ioengine=sync -bs=4k -size=256M -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=iotest
测试IO写入延迟:
fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=sync -bs=4k -size=256M -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=iotest
参数 | 说明 |
---|---|
-direct=1 | 表示测试时忽略I/O缓存,数据直写。 |
-iodepth=128 | 表示使用AIO时,同时发出I/O数的上限为128。 |
-rw=randwrite | 表示测试时的读写策略为随机写(random writes)。作其它测试时可以设置为:
|
-ioengine=libaio | 表示测试方式为libaio(Linux AIO,异步I/O)。应用程序使用I/O通常有两种方式:
|
-bs=4k |
表示单次I/O的块文件大小为4 KB。未指定该参数时的默认大小也是4 KB。 测试IOPS时,建议将 测试吞吐量时,建议将 |
-size=1G | 表示测试文件大小为1 GiB。 |
-numjobs=1 | 表示测试线程数为1。 |
-runtime=1000 | 表示测试时间为1000秒。如果未配置,则持续将前述-size 指定大小的文件,以每次-bs 值为分块大小写完。 |
-group_reporting | 表示测试结果里汇总每个进程的统计信息,而非以不同job汇总展示信息。 |
-filename=iotest | 指定测试文件的名称,比如iotest。测试裸盘可以获得真实的硬盘性能,但直接测试裸盘会破坏文件系统结构,请在测试前提前做好数据备份。 |
-name=Rand_Write_Testing | 表示测试任务名称为Rand_Write_Testing,可以随意设定。 |
评测结果:
磁盘类型 | 顺序读取 | 顺序写入 | 随机读取 | 随机写入 | 读取IO延迟 | 写入IO延迟 |
高效云盘 100G | read: IOPS=114, BW=115MiB/s | write: IOPS=113, BW=114MiB/s | read: IOPS=2620, BW=10.2MiB/s | write: IOPS=2566, BW=10.0MiB/s | 0.3ms | 1.2ms |
SSD云盘 100G | read: IOPS=166, BW=167MiB/s | write: IOPS=168, BW=168MiB/s | read: IOPS=4844, BW=18.9MiB/s | write: IOPS=4844, BW=18.9MiB/s | 0.6ms | 0.7ms |
容量型NFS 1TB | read: IOPS=137, BW=138MiB/s | write: IOPS=140, BW=140MiB/s | read: IOPS=15.8k, BW=61.9MiB/s | write: IOPS=5804, BW=22.7MiB/s | 1.4ms | 2.7ms |
GlusterFS(3节点100G高效云盘) | read: IOPS=106, BW=106MiB/s | write: IOPS=43, BW=43.0MiB/s | read: IOPS=2625, BW=10.3MiB/s | write: IOPS=916, BW=3664KiB/s | 1ms | 0.9ms |
顺便测试一下我的PC机上的磁盘以便有个参照:
评测工具:FIO
配置:CPU: 6核 内存: 16 GB OS:windows10
下载地址:https://bluestop.org/fio/
IO引擎要调整如下
-ioengine=windowsaio
测试IO延迟要调整如下
-direct=0
测试结果:
磁盘类型 | 顺序读取 | 顺序写入 | 随机读取 | 随机写入 | 读取IO延迟 | 写入IO延迟 |
NVMe M.2 250G(三星) | read: IOPS=3112, BW=3112MiB/s | write: IOPS=1503, BW=1504MiB/s | read: IOPS=98.9k, BW=386MiB/s | write: IOPS=46.8k, BW=183MiB/s | 4us | 11us |
SATA SSD RAID0 240*2 (西数) | read: IOPS=721, BW=721MiB/s | write: IOPS=471, BW=471MiB/s | read: IOPS=49.4k, BW=193MiB/s | write: IOPS=35.1k, BW=137MiB/s | 4us | 11us |
SATA HDD RAID0 1TB*2 (西数) | read: IOPS=216, BW=216MiB/s | write: IOPS=209, BW=209MiB/s | read: IOPS=791, BW=3167KiB/s | write: IOPS=834, BW=3339KiB/s | 4us | 11us |
STAT SSD 240G (闪迪) | read: IOPS=494, BW=495MiB/s | write: IOPS=156, BW=156MiB/s | read: IOPS=73.9k, BW=289MiB/s | write: IOPS=39.5k, BW=154MiB/s | 6us | 17us |
USB HDD 1TB (希捷) | read: IOPS=114, BW=114MiB/s | write: IOPS=106, BW=107MiB/s | read: IOPS=313, BW=1253KiB/s | write: IOPS=753, BW=3014KiB/s | 7us | 10us |