核心选项说明

  • –name: 任务名
  • –rw: I/O 模式
    • read: 顺序读
    • write: 顺序写
    • rw: 顺序读写交替
    • randread: 随机读
    • randwrite: 随机写
    • randrw: 随机读写交替
  • –bs: 块大小(block size),如 4k, 1M
  • –size: 测试文件大小
  • –filename: 目标文件或设备路径
  • –runtime: 测试时长
  • –time_based: 基于时间运行,而不是直到写满 size
  • –group_reporting: 汇总结果
  • –numjobs: job 数量,即多少线程/进程同时运行相同任务
  • –iodepth: 每个 job 可挂起的并发 I/O 请求数(队列深度)
    • numjobs × iodepth ≈ 总并发请求数

准备测试文件

fio --name=prepare --rw=write --bs=1M --size=1G --filename=testfile --numjobs=1 --group_reporting

顺序吞吐量测试(CDM Seq QD=8 T=1)

顺序读

fio --name=seqread --rw=read --bs=1M --size=1G --filename=testfile --numjobs=1 --iodepth=8 --runtime=30 --time_based --group_reporting

顺序写

fio --name=seqwrite --rw=write --bs=1M --size=1G --filename=testfile --numjobs=1 --iodepth=8 --runtime=30 --time_based --group_reporting

随机延迟测试(CDM Rnd4K QD=1 T=1)

随机读

fio --name=latread --rw=randread --bs=4k --size=1G --filename=testfile --numjobs=1 --iodepth=1 --runtime=60 --time_based --group_reporting

随机写

fio --name=latwrite --rw=randwrite --bs=4k --size=1G --filename=testfile --numjobs=1 --iodepth=1 --runtime=60 --time_based --group_reporting

随机 IOPS 高并发(CDM Rnd4K QD=32 T=1)

随机读

fio --name=randread --rw=randread --bs=4k --size=1G --filename=testfile --numjobs=1 --iodepth=32 --runtime=60 --time_based --group_reporting

随机写

fio --name=randwrite --rw=randwrite --bs=4k --size=1G --filename=testfile --numjobs=1 --iodepth=32 --runtime=60 --time_based --group_reporting

随机 IOPS 超高并发(CDM Rnd4K QD=32 T=16)

随机读

fio --name=randread_mt --rw=randread --bs=4k --size=1G --filename=testfile --numjobs=16 --iodepth=32 --runtime=60 --time_based --group_reporting

随机写

fio --name=randwrite_mt --rw=randwrite --bs=4k --size=1G --filename=testfile --numjobs=16 --iodepth=32 --runtime=60 --time_based --group_reporting

混合负载(模拟真实业务)

fio --name=randrw --rw=randrw --rwmixread=70 --bs=4k --size=1G --filename=testfile --numjobs=4 --iodepth=32 --runtime=60 --time_based --group_reporting

清理

rm testfile