fio-磁盘性能测试工具

我是研究僧i 提交于 2020-04-14 16:36:59

【推荐阅读】微服务还能火多久?>>>

作用:用于测试磁盘裸盘或文件系统的IOPS、吞吐量、时延性能指标;

centos安装:

yum install libaio -y
yum install libaio-devel -y
yum install fio -y

常用选项:

    -name:本测试任务的名字;

    -filename:指定测试文件名或者磁盘名;

    -rw:测试模式

        randread:随机读

        randwrite:随机写

        read:顺序读

        write:顺序写

    -direct:是否使用缓存或缓冲区,1表示不使用;

    -ioengine:libaio,异步I/O;通常使用libaio一次提交一批I/O请求,等待一批的完成,减少交互的次数更有效率;

    -iodepth:使用异步 I/O(asynchronous I/O,简称 AIO)时,同时发出的 I/O 请求上限,最大为128;

    -bs:表示单次I/O的块文件大小。默认值也是4KiB;

    -size:表示测试文件大小;为写时需要指定,读是不需要指定size;

    -numjobs:指定测试进程数;

    -group_reporting:当numjobs不为1时,合并测试结果;否则每个进程会分开显示;

    -runtime:设置测试时间;

用法示例:

# 随机读
fio -name=randread -filename=/dev/vdb -direct=1 -rw=randread -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting 

# 随机写
fio -name=randwrite -filename=/dev/vdb -direct=1 -rw=randread -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting 

# 顺序读
fio -name=read -filename=/dev/vdb -direct=1 -rw=read -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting 

# 顺序写
fio -name=write -filename=/dev/vdb -direct=1 -rw=write -iodepth=128 -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=60 -group_reporting

阿里ECS测试结果对比:高效云盘100G、SSD100G

    SSD云盘裸盘:

        随机读:IOPS -> 4800,吞吐量:18.9MiB/s

        随机写:IOPS -> 4800,吞吐量:18.9MiB/s

        顺序读:IOPS -> 15300,吞吐量:59.8MiB/s

        顺序写:IOPS -> 6300,吞吐量:24.9MiB/s

    高效云盘裸盘:

        随机读:IOPS -> 2624,吞吐量:10.3MiB/s

        随机写:IOPS -> 2624,吞吐量:10.3MiB/s

        顺序读:IOPS -> 4500,吞吐量:17.6MiB/s

        顺序写:IOPS -> 3800,吞吐量:14.7MiB/s

    结论:

        1.SSD的综合性能要高效云盘高;

        2.不管SSD还是高效云盘随机读、随机写的性能基本一致;

        3.顺序读写的性能要远超随机读写;

        4.文件系统和裸盘的IOPS、吞吐量基本一致(在不使用缓存的情况下);

        5.自行测试得出的IOPS与阿里云官网给出的结果基本一致;


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!