zoukankan      html  css  js  c++  java
  • fio测试磁盘性能

    参数说明FIO

    yum install -y libaio libaio-devel fio

    开始测试

    • 随机写IOPS: 
      fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing
    • 随机读IOPS: 
      fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
    • 顺序写吞吐量(写带宽): 
      fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
    • 顺序读吞吐量(读带宽): 
      fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
    • 随机写时延: 
      fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=iotest -name=Rand_Write_Latency_Testing
    • 随机读时延: 
      fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=iotest -name=Rand_Read_Latency_Testing

    参数说明

    参数说明
    -direct=1 表示测试时忽略I/O缓存,数据直写。
    -iodepth=128 表示使用异步I/O(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的块文件大小为4KiB。默认值也是4KiB。
    • 测试IOPS时,建议将bs设置为一个较小的值,如4k。
    • 测试吞吐量时,建议将bs设置为一个较大的值,如1024k。
    -size=1G 表示测试文件大小为1GiB。
    -numjobs=1 表示测试线程数为1。
    -runtime=1000 表示测试时间为1000秒。如果未配置,则持续将前述-size指定大小的文件,以每次-bs值为分块大小写完。
    -group_reporting 表示测试结果里汇总每个进程的统计信息,而非以不同job汇总展示信息。
    -filename=iotest 指定测试文件的名称,例如iotest。
    -name=Rand_Write_Testing 表示测试任务名称为Rand_Write_Testing,可以随意设定。
  • 相关阅读:
    .net core2.0 中使用aspectcore实现aop
    [Superset] 设置Superset的登录设置
    [Python]Pandas对于非唯一的label index的数据选择问题
    Data Science Radar测试结果
    [R]R包版本更迭【持续更新】
    [面试] 删除多余的数组内容
    [Python]Python中的包(Package)
    [Linux] 使用Yum在CentOS上安装MySQL
    [pyMongo]insert_many的Bulkwrite实现机制
    [Git]2018-10 解决git cmd中文乱码问题
  • 原文地址:https://www.cnblogs.com/kgdxpr/p/13425105.html
Copyright © 2011-2022 走看看