我试图以某种方式通过随机读取、随机写入、混合 randrw 来测试我的 rbd 存储,但输出不正确,它是一个连续增长的数字。
我的步骤有什么问题吗?
这是我运行的 fio 文件:
; fiotest 的 fio-rand-write.job
[global]
name=fio-rand-write
filename=fio-rand-write
rw=randwrite
bs=4K
direct=1
write_iops_log=rand-read
[file1]
size=1G
ioengine=libaio
iodepth=16
结果是这样的:
head rand-read_iops.1.log
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
2, 1, 1, 4096, 0
3, 1, 1, 4096, 0
4, 1, 1, 4096, 0
5, 1, 1, 4096, 0
5, 1, 1, 4096, 0
5, 1, 1, 4096, 0
tail rand-read_iops.1.log
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
30700, 1, 1, 4096, 0
我使用的是 fio 3.18。
为什么我得不到真正的 iops?
但是输出不正确,是一个连续增长的数字
您指的是哪一栏?如果您指的是最左边的列,那么这个时间不是根据 fio 日志文件格式文档?
Fio 支持多种日志文件格式,用于记录延迟、带宽和 IOPS。这些日志共享一个通用格式,如下所示:
时间(毫秒)、值、数据方向、块大小(字节)、偏移量(字节)
相对于之前的读数,时间通常不会单调增加(考虑到精度)吗?
另请参阅 write_iops_log 的文档:
由于 fio 默认为单独的 I/O 日志记录,因此 IOPS 日志中的值条目将为 1,除非已启用窗口日志记录(请参阅 log_avg_msec)