Hi, I'm only starting with fio and I'm observing a behaviour that I don't understand so I'd like to ask you for some explanation. Any suggestions will be much appreciated. What I'm trying to do is have a set of W jobs, each iterating over a number of files, writing each one completely before moving forward. I want to keep going for a specified amount of time. Since I understand (and confirmed) that time_based would block fio from moving to next file even after writing out its full size (https://github.com/axboe/fio/issues/358) I'm trying to use 'runtime' combined with a large number of loops, making sure that job still has iterations to do when it gets stopped. I get the expected result, however after each loop (i.e. after iterating once over all of files) all writes pause, with each loop for a longer amount of time(!). This behaviour is only observed when there is rate limit set for writes. Attached you can find a simplified test scenario (one job, 5 loops, 10 files of 100M) and two log files (--debug=io,file,helperthread,rate) showing what happens when rate limit is set and not. [global] directory=/mnt/ext4 runtime=10m [write] rw=write loops=5 nrfiles=10 openfiles=1 filesize=100M file_service_type=sequential direct=1 bs=100M ;rate=,100M In the case rate limit is set I see the job going through all files as expected, then there is no activity (during which time only helperthread does some logging) and then next iteration starts. The pause is confirmed by watching output of "dstat -d" - each second dstat logs expected W limited to expected rate, then between iterations there is 0 MB/s writes, then it resumes. The more bandwidth used by W the longer the pauses. No such behaviour occurs when not using rate limiting. Am I missing something? Should I configure the job differently, or is it somehow expected? Or is something wrong? env: Centos 7.7.1908, 3.10.0-1062.12.1.el7.x86_64 fio: 3.7 (from base centos repo) Thanks a lot! Best Mateusz
<<attachment: job-logs.zip>>