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
....
....

관련 정보