理解fio中的“布局IO文件”

理解fio中的“布局IO文件”

我试图了解“布局 IO 文件”中真正发生的情况。我在原始块设备上安装了 btrfs,每当我使用以下配置运行 fio 时,我发现布局步骤大约需要 40 分钟才能完成,然后实际的 fio 作业开始执行 IO

runtime=600
rw=readwrite
rwmixwrite=90
random_distribution=random
percentage_random=100
size=50%
iodepth=16
ioengine=libaio
direct=1
bs=4096
time_based=1
fallocate=none
directory=/tmp/fs_d765f32a-1a34-11eb-8644-61649a50b743
write_lat_log=/tmp/ll
log_avg_msec=500
log_unix_epoch=1
log_max_value=1
filesize=8GB

如果您看到以下行,则该命令于 15:19:51 开始,布局文件于 15:58:31 结束(布局文件大约需要 40 分钟)。我尝试查看源代码,似乎每当程序决定扩展文件时就会发生布局。我假设只有在 fio 配置中有读取时才会进行布局,但此时我有点不清楚为什么需要 40 分钟。了解这里真正发生的事情。

2020-10-29 15:19:51,583 [MainThread] - root - DEBUG - Fio job output: job-0: (g=0): rw=rw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
fio-3.16
Starting 1 process
job-0: Laying out IO file (1 file / 4096MiB)

2020-10-29 15:58:31,896 [MainThread] - root - DEBUG - Fio job output:
job-0: (groupid=0, jobs=1): err= 0: pid=70: Thu Oct 29 22:58:31 2020
....
....

相关内容