阿里云 云盘性能评测

评测工具: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)。作其它测试时可以设置为:
  • randread(随机读random reads)
  • read(顺序读sequential reads)
  • write(顺序写sequential writes)
  • randrw(混合随机读写mixed random reads and writes)
-ioengine=libaio 表示测试方式为libaio(Linux AIO,异步I/O)。应用程序使用I/O通常有两种方式:
  • 同步

    同步的I/O一次只能发出一个I/O请求,等待内核完成才返回。这样对于单个线程iodepth总是小于1,但是可以透过多个线程并发执行来解决。通常会用16−32根线程同时工作将iodepth塞满。

  • 异步

    异步的I/O通常使用libaio这样的方式一次提交一批I/O请求,然后等待一批的完成,减少交互的次数,会更有效率。

-bs=4k

表示单次I/O的块文件大小为4 KB。未指定该参数时的默认大小也是4 KB。

测试IOPS时,建议将bs设置为一个比较小的值,如本示例中的4k。

测试吞吐量时,建议将bs设置为一个较大的值,如本示例中的1024k。

-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
原文地址:https://www.cnblogs.com/37yan/p/9776915.html