1, 祼盘读写
一个分区
-filename=/dev/sdb1
同时测试多个分区
-filename=/dev/sdb1;/dev/sdb2
比例:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=50G -numjobs=10 -runtime=1000 -group_reporting -name=mytest
2,文件系统读写
-directory=/root/test
#对本地磁盘的某个目录进行测试( filename | directory 二者选一)
filename 不需要挂盘 而 directory 需要 把测试的磁盘 挂载到 对应的目录
注意: 要带上生成和读写的文件名字: -name=test
fio -directory=/home/yuan -name=test -direct=1 -iodepth=4 -thread=1 -ioengine=sync -bs=4k -size=10m -group_reporting -rw=randrw
同时会在指定目录生成一个 test.0 .0 文件
可以查看内容,为随机内容。
3, 校验读写
1,读写指定内容加验证
-verify=pattern
-verify_pattern=0x1F
例如
fio -directory=/home/yuan -name=test -direct=1 -iodepth=4 -thread=1 -ioengine=sync -bs=4k -size=10m -group_reporting -rw=rw -verify=pattern -verify_pattern=0x1F
可以发现内容变成固定0x1f
yuan@ubuntu:~$ xxd -l 0x10 test.0.0
0000000: 1f1f 1f1f 1f1f 1f1f 1f1f 1f1f 1f1f 1f1f ................
yuan@ubuntu:~$
注意:
1,使用 randrw 也是一样。
2, 不加 -verify=pattern 单独使用-verify_pattern 会有 默认有校验算法,运行出来的文件会有一校验头,(有md5 crc16 crc32 crc32c crc32c-intel crc64 crc7 sha256 sha512 sha1等,为了校验,需要用do_verify参数。如果是写,那么do_verify=1就意味着写完再读校验。do_verify=0时只写校验数据,不做读校验)。从结果文件上看是 crc32( 这里就不作考证了,可能不是的)
4 跳跃
表示每次进行IO请求时,跳过此BS
–rw=read:-1k
–rw=write:1k
fio -directory=/home/yuan -name=test -direct=1 -iodepth=1 -thread=1 -ioengine=sync -bs=1k -size=2k -rw=write:-1k -verify=pattern -verify_pattern=0xFF
5, 多线程
-numjobs=10
fio -directory=/home/yuan -name=test -direct=1 -iodepth=1 -thread=1 -ioengine=sync -bs=1k -size=2k -rw=write -numjobs=10 -group_reporting
-numjobs=10 10个线程 分区写10个文件
-group_reporting 使10个结果汇总
6 其他用法:
这些我也没有用过
1。锁定带宽
–rate=100m
2, 锁定IOPS
–rate_iops=500