Re: IO Depth measurement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 3 Oct 2019 at 19:35, Elliott Balsley <elliott@xxxxxxxxxxxxxx> wrote:
>
> 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

iodepth values greater than 1 only have an impact if you're using an
asynchronous ioengine* (i.e. submission and waiting completion can be
separate steps) so that you can have multiple I/Os in flight at once
(see the sentence that begins Note in documentation for iodepth -
https://fio.readthedocs.io/en/latest/fio_man.html#cmdoption-arg-iodepth
). In your output we can see you have "ioengine=psync" which is
synchronous. Getting ahead of ourselves note that very recent ZFS only
support direct I/O by falling back to buffered I/O
(https://github.com/zfsonlinux/zfs/commit/5c6223ed5a7d51fd19b0c1a71784034202dd069
) so if you're using libaio with ZFS I wouldn't be sure that the
submission wouldn't go synchronous in the kernel.

* See the docs for details.

> submits are between 4 to 8.  I'd appreciate if someone can explain

Note the ranges for submit complete are subtly different to to for
depth i.e. that's 100% 1-4 for submit (see the IO submit and IO depths
sections of https://fio.readthedocs.io/en/latest/fio_man.html#interpreting-the-output
).

> 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
> ...
> fio-3.5
> Starting 20 processes
> Jobs: 11 (f=110):
> [_(1),R(2),_(1),R(1),_(1),R(1),_(1),R(1),_(1),R(4),_(1),R(1),_(1),R(1),_(2)][70.0%][r=14.3GiB/s,w=0KiBJobs:
> 1 (f=10): [_(10),E(1),R(1),_(8)][100.0%][r=13.0GiB/s,w=0KiB/s][r=13.4k,w=0
> IOPS][eta 00m:00s]
> larry: (groupid=0, jobs=20): err= 0: pid=70097: Thu Oct  3 10:34:31 2019
>    read: IOPS=14.2k, BW=13.9GiB/s (14.9GB/s)(97.7GiB/7020msec)
>     clat (usec): min=343, max=5832, avg=1204.12, stdev=542.72
>      lat (usec): min=343, max=5832, avg=1204.38, stdev=542.85
>     clat percentiles (usec):
>      |  1.00th=[  433],  5.00th=[  502], 10.00th=[  578], 20.00th=[  750],
>      | 30.00th=[  922], 40.00th=[ 1029], 50.00th=[ 1074], 60.00th=[ 1106],
>      | 70.00th=[ 1401], 80.00th=[ 1811], 90.00th=[ 2057], 95.00th=[ 2147],
>      | 99.00th=[ 2606], 99.50th=[ 2802], 99.90th=[ 3261], 99.95th=[ 3523],
>      | 99.99th=[ 4555]
>    bw (  KiB/s): min=469835, max=1684183, per=5.45%, avg=794410.57,
> stdev=293137.66, samples=230
>    iops        : min=  458, max= 1644, avg=775.34, stdev=286.24, samples=230
>   lat (usec)   : 500=4.99%, 750=15.08%, 1000=16.16%
>   lat (msec)   : 2=50.54%, 4=13.21%, 10=0.03%
>   cpu          : usr=0.41%, sys=99.55%, ctx=2364, majf=0, minf=5120
>   IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
>      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
>      complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
>      issued rwts: total=100000,0,0,0 short=0,0,0,0 dropped=0,0,0,0
>      latency   : target=0, window=0, percentile=100.00%, depth=2
>
> Run status group 0 (all jobs):
>    READ: bw=13.9GiB/s (14.9GB/s), 13.9GiB/s-13.9GiB/s
> (14.9GB/s-14.9GB/s), io=97.7GiB (105GB), run=7020-7020msec
> fio --name=larry --rw=read --bs=1M --size=5000M --directory=/all24

-- 
Sitsofe | http://sucs.org/~sits/



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux