fio icon indicating copy to clipboard operation
fio copied to clipboard

Setting the offset for writes

Open travisdowns opened this issue 6 months ago • 4 comments

It would be great to have more control over the offsets for random and sequential writes. For example, I don't think it's possible to request random writes of 1K size which always cross a 4K boundary (so e.g., start offset 3584 + 4K*N for any integer N). This pretty useful for testing NVMe behavior which may have quirks when you cross certain boundaries.

Similarly, it would be nice to be able set up specific sequences of sequental writes, such as ones above. I think it is possible for some loads using both offset=3584 and rw=write:3072 though this is fragile e.g., I think it only works with numjobs=1.

travisdowns avatar Jul 05 '25 00:07 travisdowns

@travisdowns hmm... I haven't tried it but does zonemode=strided combined with other zone options let you do some of what you're asking?

sitsofe avatar Jul 05 '25 09:07 sitsofe

@travisdowns ping.

sitsofe avatar Oct 09 '25 19:10 sitsofe

@sitsofe thanks for the ping. I had originally thought that these "zone" options applied to NVMe disks supporting NVMe zones only, but maybe it's a generic feature? It's not totally clear from the docs. Can you clarify?

travisdowns avatar Oct 10 '25 13:10 travisdowns

@travisdowns Sure: there are two zonemode types: the original strided that is generic and predates zoned block devices then there's zbd which is only targeted at zoned block devices because it issues things like zone resets and other zbd-only commands. strided is just about setting up regions and doing I/O within a single region until a threshold is hit and then moving on to the next region.

sitsofe avatar Oct 10 '25 20:10 sitsofe