• 阿里云 云盘性能评测


    评测工具: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
  • 相关阅读:
    Advanced Developer's Blog
    图片文字识别
    Unit test resources
    SpringBoot-mvn插件
    flask中使用proto3
    QTA-qtaf自动化测试实践
    AttributeError: module 'virtualenv' has no attribute 'create_environment'
    qtaf dick 报错 NameError: name 'dict_values' is not defined
    24点python实现
    mysql在win下移植
  • 原文地址:https://www.cnblogs.com/37yan/p/9776915.html
Copyright © 2020-2023  润新知