> -----Original Message----- > From: fio-owner@xxxxxxxxxxxxxxx <fio-owner@xxxxxxxxxxxxxxx> On Behalf > Of Elliott Balsley > Sent: Thursday, October 03, 2019 12:38 PM > To: fio <fio@xxxxxxxxxxxxxxx> > Subject: IO Depth measurement > > Hello. I've read through the docs, but I don't understand the > difference in output between IO depth and IO submit. In this > example, > I set iodepth=2, but it's showing 100% use depth of 1. And 100% of > submits are between 4 to 8. I'd appreciate if someone can explain > what this means. If it matters, I'm reading from a ZFS filesystem, > and data is cached in ARC, hence the high speeds. > > fio --name=larry --rw=read --bs=1M --size=5000M --directory=/all24 > --nrfiles=10 --end_fsync=1 --numjobs=20 --group_reporting --iodepth=2 > larry: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, > (T) 1024KiB-1024KiB, ioengine=psync, iodepth=2 > IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, psync is a synchronous engine, so a thread can only run one IO at a time. The iodepth argument is ignored. numjobs=20 spawns 20 concurrent processes, so you should see a queue depth approaching 20 at the kernel level in sysfs (often retrieved with the iostat utility). If there's a caching layer involved, though, you can see all sorts of bizarre results.