On Fri, Oct 19, 2018 at 08:32:52PM +0200, Sergio Lopez wrote: > Yes, I ran some random read and random write tests with fio. The Guest > is Linux, mainly because its virtio implementation is more mature. Next > week I'll try with OpenBSD.
Here are the (long due) numbers with an OpenBSD 6.4 Guest. While on Linux all tests performed better with kickfd, this time randread gets a ~10% improvement, while randwrite numbers are ~5% worse. Please keep in mind that those are just the inital numbers. There's still a lot of optimizations that can be applied on both the vmd side (specially on writes, with things like request merging and asynchronous I/O) and the Guest drivers (OpenBSD performance is roughly half of Linux's, which indicates there's plenty of room for improvement). In any case, I'd like to know if you think this kickfd feature is something worth pursuing, or should I move to something else. Cheers, Sergio. ======================== | OpenBSD 6.4 + kickfd | ======================== - randread # fio --clocksource=clock_gettime --name=randread --rw=randread --bs=4k --filename=/dev/sd1c --size=1g --numjobs=1 --ioengine=sync --iodepth=1 --direct=0 --group_reporting randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 fio-3.12-17-g0fcbc0 Starting 1 thread Jobs: 1 (f=1): [r(1)][100.0%][r=24.5MiB/s][r=6278 IOPS][eta 00m:00s] randread: (groupid=0, jobs=1): err= 0: pid=245800000: Fri Nov 23 09:59:54 2018 read: IOPS=6120, BW=23.9MiB/s (25.1MB/s)(1024MiB/42831msec) clat (usec): min=10, max=10126, avg=127.91, stdev=36.28 lat (usec): min=19, max=10134, avg=136.25, stdev=36.58 clat percentiles (usec): | 1.00th=[ 110], 5.00th=[ 112], 10.00th=[ 113], 20.00th=[ 119], | 30.00th=[ 121], 40.00th=[ 126], 50.00th=[ 129], 60.00th=[ 131], | 70.00th=[ 131], 80.00th=[ 133], 90.00th=[ 135], 95.00th=[ 145], | 99.00th=[ 190], 99.50th=[ 208], 99.90th=[ 255], 99.95th=[ 318], | 99.99th=[ 766] bw ( KiB/s): min= 2669, max=24660, per=61.01%, avg=14936.35, stdev=7445.54, samples=75 iops : min= 667, max= 6165, avg=3733.80, stdev=1861.45, samples=75 lat (usec) : 20=0.03%, 50=0.01%, 100=0.01%, 250=99.84%, 500=0.08% lat (usec) : 750=0.02%, 1000=0.01% lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01% cpu : usr=0.69%, sys=41.15%, ctx=261996, majf=1, minf=3 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=262144,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=23.9MiB/s (25.1MB/s), 23.9MiB/s-23.9MiB/s (25.1MB/s-25.1MB/s), io=1024MiB (1074MB), run=42831-42831msec # ./fio --clocksource=clock_gettime --name=randread --rw=randread --bs=4k --filename=/dev/sd1c --size=1g --numjobs=2 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 2 threads Jobs: 1 (f=1): [r(1),_(1)][98.8%][r=23.2MiB/s][r=5947 IOPS][eta 00m:01s] randread: (groupid=0, jobs=2): err= 0: pid=1989935168: Fri Nov 23 10:03:27 2018 read: IOPS=6366, BW=24.9MiB/s (26.1MB/s)(2048MiB/82356msec) clat (usec): min=10, max=1104.9k, avg=187.28, stdev=4505.64 lat (usec): min=19, max=1104.9k, avg=221.12, stdev=5417.17 clat percentiles (usec): | 1.00th=[ 20], 5.00th=[ 110], 10.00th=[ 113], 20.00th=[ 118], | 30.00th=[ 119], 40.00th=[ 120], 50.00th=[ 121], 60.00th=[ 122], | 70.00th=[ 127], 80.00th=[ 133], 90.00th=[ 135], 95.00th=[ 135], | 99.00th=[ 184], 99.50th=[ 221], 99.90th=[ 537], 99.95th=[ 906], | 99.99th=[225444] bw ( KiB/s): min= 110, max=24515, per=18.61%, avg=4738.70, stdev=5790.82, samples=242 iops : min= 27, max= 6128, avg=1184.30, stdev=1447.69, samples=242 lat (usec) : 20=1.53%, 50=1.88%, 100=0.04%, 250=96.25%, 500=0.17% lat (usec) : 750=0.07%, 1000=0.01% lat (msec) : 2=0.01%, 4=0.01%, 20=0.01%, 50=0.02%, 100=0.01% lat (msec) : 250=0.02%, 500=0.01%, 750=0.01% cpu : usr=0.32%, sys=25.10%, ctx=638508, majf=0, minf=4 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=524288,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=24.9MiB/s (26.1MB/s), 24.9MiB/s-24.9MiB/s (26.1MB/s-26.1MB/s), io=2048MiB (2147MB), run=82356-82356msec # ./fio --clocksource=clock_gettime --name=randread --rw=randread --bs=4k --filename=/dev/sd1c --size=1g --numjobs=4 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 4 threads Jobs: 1 (f=1): [_(2),r(1),_(1)][98.2%][r=21.4MiB/s][r=5488 IOPS][eta 00m:03s] randread: (groupid=0, jobs=4): err= 0: pid=-805060032: Fri Nov 23 10:07:09 2018 read: IOPS=6266, BW=24.5MiB/s (25.7MB/s)(4096MiB/167342msec) clat (usec): min=10, max=3119.3k, avg=341.60, stdev=13523.41 lat (usec): min=19, max=3119.3k, avg=409.38, stdev=14924.32 clat percentiles (usec): | 1.00th=[ 20], 5.00th=[ 21], 10.00th=[ 111], 20.00th=[ 117], | 30.00th=[ 120], 40.00th=[ 121], 50.00th=[ 121], 60.00th=[ 122], | 70.00th=[ 123], 80.00th=[ 133], 90.00th=[ 135], 95.00th=[ 137], | 99.00th=[ 478], 99.50th=[ 523], 99.90th=[ 742], 99.95th=[ 23987], | 99.99th=[700449] bw ( KiB/s): min= 3, max=16050, per=2.45%, avg=614.96, stdev=1501.01, samples=742 iops : min= 0, max= 4012, avg=153.37, stdev=375.28, samples=742 lat (usec) : 20=1.97%, 50=5.62%, 100=0.16%, 250=90.54%, 500=1.15% lat (usec) : 750=0.45%, 1000=0.04% lat (msec) : 2=0.01%, 10=0.01%, 20=0.01%, 50=0.01%, 100=0.01% lat (msec) : 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01% cpu : usr=0.21%, sys=14.03%, ctx=1393669, majf=0, minf=6 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=1048576,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=24.5MiB/s (25.7MB/s), 24.5MiB/s-24.5MiB/s (25.7MB/s-25.7MB/s), io=4096MiB (4295MB), run=167342-167342msec - randwrite # ./fio --clocksource=clock_gettime --name=randwrite --rw=randwrite --bs=4k --filename=/dev/sd1c --size=1g --numjobs=1 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 fio-3.12-17-g0fcbc0 Starting 1 thread Jobs: 1 (f=1): [w(1)][100.0%][w=12.9MiB/s][w=3291 IOPS][eta 00m:00s] randwrite: (groupid=0, jobs=1): err= 0: pid=1318987840: Fri Nov 23 10:11:10 2018 write: IOPS=3532, BW=13.8MiB/s (14.5MB/s)(1024MiB/74204msec) clat (usec): min=116, max=383707, avg=208.57, stdev=1131.99 lat (usec): min=125, max=383715, avg=216.99, stdev=1132.04 clat percentiles (usec): | 1.00th=[ 124], 5.00th=[ 127], 10.00th=[ 130], 20.00th=[ 133], | 30.00th=[ 135], 40.00th=[ 139], 50.00th=[ 141], 60.00th=[ 145], | 70.00th=[ 153], 80.00th=[ 265], 90.00th=[ 273], 95.00th=[ 277], | 99.00th=[ 379], 99.50th=[ 562], 99.90th=[ 9372], 99.95th=[ 9503], | 99.99th=[ 9896] bw ( KiB/s): min= 3056, max=17819, per=95.00%, avg=13423.97, stdev=2726.80, samples=148 iops : min= 764, max= 4454, avg=3355.61, stdev=681.70, samples=148 lat (usec) : 250=75.90%, 500=23.51%, 750=0.13%, 1000=0.04% lat (msec) : 2=0.01%, 4=0.03%, 10=0.38%, 20=0.01%, 500=0.01% cpu : usr=0.48%, sys=33.40%, ctx=263585, majf=0, minf=2 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=0,262144,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=13.8MiB/s (14.5MB/s), 13.8MiB/s-13.8MiB/s (14.5MB/s-14.5MB/s), io=1024MiB (1074MB), run=74204-74204msec # ./fio --clocksource=clock_gettime --name=randwrite --rw=randwrite --bs=4k --filename=/dev/sd1c --size=1g --numjobs=2 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 2 threads Jobs: 1 (f=1): [_(1),w(1)][100.0%][w=14.8MiB/s][w=3799 IOPS][eta 00m:00s] randwrite: (groupid=0, jobs=2): err= 0: pid=-135734720: Fri Nov 23 10:16:36 2018 write: IOPS=3447, BW=13.5MiB/s (14.1MB/s)(2048MiB/152097msec) clat (usec): min=15, max=429974, avg=505.90, stdev=1912.65 lat (usec): min=24, max=429982, avg=517.04, stdev=1916.41 clat percentiles (usec): | 1.00th=[ 37], 5.00th=[ 124], 10.00th=[ 128], 20.00th=[ 133], | 30.00th=[ 135], 40.00th=[ 139], 50.00th=[ 326], 60.00th=[ 338], | 70.00th=[ 400], 80.00th=[ 619], 90.00th=[ 1012], 95.00th=[ 1418], | 99.00th=[ 2999], 99.50th=[ 9110], 99.90th=[18482], 99.95th=[19268], | 99.99th=[20317] bw ( KiB/s): min= 2128, max=15030, per=47.84%, avg=6595.79, stdev=1414.59, samples=604 iops : min= 532, max= 3757, avg=1648.59, stdev=353.63, samples=604 lat (usec) : 20=0.01%, 50=3.19%, 100=0.38%, 250=42.04%, 500=27.28% lat (usec) : 750=9.69%, 1000=6.81% lat (msec) : 2=8.46%, 4=1.36%, 10=0.59%, 20=0.18%, 50=0.01% lat (msec) : 100=0.01%, 500=0.01% cpu : usr=0.29%, sys=22.79%, ctx=1151553, majf=0, minf=2 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=0,524288,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=13.5MiB/s (14.1MB/s), 13.5MiB/s-13.5MiB/s (14.1MB/s-14.1MB/s), io=2048MiB (2147MB), run=152097-152097msec # ./fio --clocksource=clock_gettime --name=randwrite --rw=randwrite --bs=4k --filename=/dev/sd1c --size=1g --numjobs=4 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 4 threads Jobs: 1 (f=1): [_(2),w(1),_(1)][100.0%][w=11.1MiB/s][w=2846 IOPS][eta 00m:00s] randwrite: (groupid=0, jobs=4): err= 0: pid=-1510592448: Fri Nov 23 10:22:24 2018 write: IOPS=3284, BW=12.8MiB/s (13.5MB/s)(4096MiB/319238msec) clat (usec): min=15, max=504371, avg=1032.12, stdev=3293.43 lat (usec): min=23, max=512815, avg=1088.02, stdev=3381.10 clat percentiles (usec): | 1.00th=[ 36], 5.00th=[ 125], 10.00th=[ 133], 20.00th=[ 137], | 30.00th=[ 396], 40.00th=[ 486], 50.00th=[ 644], 60.00th=[ 807], | 70.00th=[ 996], 80.00th=[ 1287], 90.00th=[ 1844], 95.00th=[ 2573], | 99.00th=[ 9110], 99.50th=[17695], 99.90th=[28967], 99.95th=[34341], | 99.99th=[71828] bw ( KiB/s): min= 138, max= 7895, per=23.84%, avg=3132.35, stdev=890.04, samples=2541 iops : min= 34, max= 1973, avg=782.71, stdev=222.50, samples=2541 lat (usec) : 20=0.02%, 50=3.47%, 100=0.53%, 250=22.41%, 500=14.76% lat (usec) : 750=15.11%, 1000=14.03% lat (msec) : 2=21.20%, 4=6.21%, 10=1.52%, 20=0.49%, 50=0.23% lat (msec) : 100=0.01%, 250=0.01%, 500=0.01%, 750=0.01% cpu : usr=0.15%, sys=12.27%, ctx=3122891, majf=0, minf=2 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=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=12.8MiB/s (13.5MB/s), 12.8MiB/s-12.8MiB/s (13.5MB/s-13.5MB/s), io=4096MiB (4295MB), run=319238-319238msec =========================== | OpenBSD 6.4 + NO kickfd | =========================== - randread # ./fio --clocksource=clock_gettime --name=randread --rw=randread --bs=4k --filename=/dev/sd1c --size=1g --numjobs=1 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 fio-3.12-17-g0fcbc0 Starting 1 thread Jobs: 1 (f=1): [r(1)][100.0%][r=22.2MiB/s][r=5689 IOPS][eta 00m:00s] randread: (groupid=0, jobs=1): err= 0: pid=759733312: Fri Nov 23 10:28:56 2018 read: IOPS=5411, BW=21.1MiB/s (22.2MB/s)(1024MiB/48440msec) clat (usec): min=10, max=986, avg=149.36, stdev=87.15 lat (usec): min=18, max=994, avg=157.53, stdev=87.24 clat percentiles (usec): | 1.00th=[ 77], 5.00th=[ 78], 10.00th=[ 79], 20.00th=[ 86], | 30.00th=[ 87], 40.00th=[ 88], 50.00th=[ 88], 60.00th=[ 90], | 70.00th=[ 253], 80.00th=[ 260], 90.00th=[ 269], 95.00th=[ 273], | 99.00th=[ 318], 99.50th=[ 351], 99.90th=[ 416], 99.95th=[ 482], | 99.99th=[ 766] bw ( KiB/s): min=19734, max=22110, per=94.89%, avg=20540.47, stdev=478.77, samples=96 iops : min= 4933, max= 5527, avg=5134.75, stdev=119.67, samples=96 lat (usec) : 20=0.03%, 50=0.01%, 100=63.54%, 250=2.01%, 500=34.37% lat (usec) : 750=0.03%, 1000=0.01% cpu : usr=0.60%, sys=77.27%, ctx=2596, majf=6, minf=3 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=262144,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=21.1MiB/s (22.2MB/s), 21.1MiB/s-21.1MiB/s (22.2MB/s-22.2MB/s), io=1024MiB (1074MB), run=48440-48440msec # ./fio --clocksource=clock_gettime --name=randread --rw=randread --bs=4k --filename=/dev/sd1c --size=1g --numjobs=2 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 2 threads Jobs: 1 (f=1): [_(1),r(1)][97.9%][r=21.6MiB/s][r=5528 IOPS][eta 00m:02s] randread: (groupid=0, jobs=2): err= 0: pid=-140517824: Fri Nov 23 10:31:39 2018 read: IOPS=5589, BW=21.8MiB/s (22.9MB/s)(2048MiB/93797msec) clat (usec): min=10, max=154982, avg=283.67, stdev=2193.12 lat (usec): min=18, max=154991, avg=299.75, stdev=2253.64 clat percentiles (usec): | 1.00th=[ 20], 5.00th=[ 77], 10.00th=[ 79], 20.00th=[ 86], | 30.00th=[ 87], 40.00th=[ 88], 50.00th=[ 89], 60.00th=[ 90], | 70.00th=[ 253], 80.00th=[ 258], 90.00th=[ 269], 95.00th=[ 273], | 99.00th=[ 330], 99.50th=[12256], 99.90th=[24249], 99.95th=[24249], | 99.99th=[94897] bw ( KiB/s): min= 5051, max=23174, per=47.90%, avg=10708.88, stdev=1767.97, samples=372 iops : min= 1262, max= 5793, avg=2676.88, stdev=442.01, samples=372 lat (usec) : 20=1.47%, 50=2.04%, 100=62.66%, 250=1.32%, 500=31.79% lat (usec) : 750=0.05%, 1000=0.01% lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.27%, 50=0.36% lat (msec) : 100=0.01%, 250=0.01% cpu : usr=0.41%, sys=38.78%, ctx=5087, majf=0, minf=4 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=524288,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=21.8MiB/s (22.9MB/s), 21.8MiB/s-21.8MiB/s (22.9MB/s-22.9MB/s), io=2048MiB (2147MB), run=93797-93797msec # ./fio --clocksource=clock_gettime --name=randread --rw=randread --bs=4k --filename=/dev/sd1c --size=1g --numjobs=4 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 4 threads Jobs: 3 (f=3): [r(1),_(1),r(2)][99.0%][r=23.9MiB/s][r=6115 IOPS][eta 00m:02s] randread: (groupid=0, jobs=4): err= 0: pid=-318713792: Fri Nov 23 10:35:12 2018 read: IOPS=5503, BW=21.5MiB/s (22.5MB/s)(4096MiB/190525msec) clat (usec): min=10, max=332015, avg=574.78, stdev=5598.22 lat (usec): min=18, max=332023, avg=608.63, stdev=5764.17 clat percentiles (usec): | 1.00th=[ 19], 5.00th=[ 21], 10.00th=[ 79], 20.00th=[ 86], | 30.00th=[ 88], 40.00th=[ 89], 50.00th=[ 89], 60.00th=[ 90], | 70.00th=[ 255], 80.00th=[ 260], 90.00th=[ 269], 95.00th=[ 273], | 99.00th=[ 586], 99.50th=[ 47973], 99.90th=[ 71828], 99.95th=[ 71828], | 99.99th=[166724] bw ( KiB/s): min= 1782, max=10923, per=24.19%, avg=5325.29, stdev=1150.90, samples=1514 iops : min= 445, max= 2730, avg=1330.96, stdev=287.72, samples=1514 lat (usec) : 20=2.48%, 50=5.45%, 100=58.13%, 250=1.19%, 500=31.43% lat (usec) : 750=0.55%, 1000=0.04% lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%, 20=0.01%, 50=0.29% lat (msec) : 100=0.39%, 250=0.03%, 500=0.01% cpu : usr=0.17%, sys=19.49%, ctx=9866, majf=0, minf=6 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=1048576,0,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=21.5MiB/s (22.5MB/s), 21.5MiB/s-21.5MiB/s (22.5MB/s-22.5MB/s), io=4096MiB (4295MB), run=190525-190525msec - randwrite # ./fio --clocksource=clock_gettime --name=randwrite --rw=randwrite --bs=4k --filename=/dev/sd1c --size=1g --numjobs=1 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 fio-3.12-17-g0fcbc0 Starting 1 thread Jobs: 1 (f=1): [w(1)][100.0%][w=16.9MiB/s][w=4322 IOPS][eta 00m:00s] randwrite: (groupid=0, jobs=1): err= 0: pid=1861118016: Fri Nov 23 10:40:57 2018 write: IOPS=3746, BW=14.6MiB/s (15.3MB/s)(1024MiB/69972msec) clat (usec): min=119, max=19223, avg=231.25, stdev=564.33 lat (usec): min=127, max=19231, avg=239.64, stdev=564.38 clat percentiles (usec): | 1.00th=[ 125], 5.00th=[ 127], 10.00th=[ 131], 20.00th=[ 135], | 30.00th=[ 137], 40.00th=[ 139], 50.00th=[ 143], 60.00th=[ 147], | 70.00th=[ 285], 80.00th=[ 289], 90.00th=[ 310], 95.00th=[ 322], | 99.00th=[ 461], 99.50th=[ 709], 99.90th=[ 9503], 99.95th=[ 9634], | 99.99th=[ 9896] bw ( KiB/s): min= 9642, max=17950, per=95.15%, avg=14258.51, stdev=2772.35, samples=139 iops : min= 2410, max= 4487, avg=3564.25, stdev=693.12, samples=139 lat (usec) : 250=65.41%, 500=33.77%, 750=0.33%, 1000=0.05% lat (msec) : 2=0.02%, 4=0.04%, 10=0.39%, 20=0.01% cpu : usr=0.76%, sys=78.02%, ctx=3507, majf=0, minf=2 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=0,262144,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=14.6MiB/s (15.3MB/s), 14.6MiB/s-14.6MiB/s (15.3MB/s-15.3MB/s), io=1024MiB (1074MB), run=69972-69972msec # ./fio --clocksource=clock_gettime --name=randwrite --rw=randwrite --bs=4k --filename=/dev/sd1c --size=1g --numjobs=2 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 2 threads Jobs: 1 (f=1): [_(1),w(1)][99.3%][w=16.9MiB/s][w=4325 IOPS][eta 00m:01s] randwrite: (groupid=0, jobs=2): err= 0: pid=1742875200: Fri Nov 23 10:44:00 2018 write: IOPS=3726, BW=14.6MiB/s (15.3MB/s)(2048MiB/140709msec) clat (usec): min=60, max=173332, avg=461.77, stdev=2803.68 lat (usec): min=67, max=173346, avg=477.14, stdev=2837.11 clat percentiles (usec): | 1.00th=[ 76], 5.00th=[ 126], 10.00th=[ 129], 20.00th=[ 135], | 30.00th=[ 137], 40.00th=[ 139], 50.00th=[ 143], 60.00th=[ 147], | 70.00th=[ 285], 80.00th=[ 289], 90.00th=[ 297], 95.00th=[ 322], | 99.00th=[ 12125], 99.50th=[ 23987], 99.90th=[ 28705], 99.95th=[ 38011], | 99.99th=[107480] bw ( KiB/s): min= 2885, max=18075, per=47.39%, avg=7063.41, stdev=1745.48, samples=559 iops : min= 721, max= 4518, avg=1765.48, stdev=436.35, samples=559 lat (usec) : 100=4.07%, 250=61.93%, 500=31.78%, 750=0.64%, 1000=0.17% lat (msec) : 2=0.02%, 4=0.03%, 10=0.26%, 20=0.43%, 50=0.66% lat (msec) : 100=0.01%, 250=0.01% cpu : usr=0.33%, sys=39.13%, ctx=7613, majf=0, minf=2 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=0,524288,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=14.6MiB/s (15.3MB/s), 14.6MiB/s-14.6MiB/s (15.3MB/s-15.3MB/s), io=2048MiB (2147MB), run=140709-140709msec # ./fio --clocksource=clock_gettime --name=randwrite --rw=randwrite --bs=4k --filename=/dev/sd1c --size=1g --numjobs=4 --ioengine=sync --iodepth=1 --direct=0 --group_reporting fio: this platform does not support process shared mutexes, forcing use of threads. Use the 'thread' option to get rid of this warning. randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1 ... fio-3.12-17-g0fcbc0 Starting 4 threads Jobs: 3 (f=3): [_(1),w(3)][100.0%][w=13.3MiB/s][w=3405 IOPS][eta 00m:00s] randwrite: (groupid=0, jobs=4): err= 0: pid=-226515392: Fri Nov 23 10:49:27 2018 write: IOPS=3577, BW=13.0MiB/s (14.7MB/s)(4096MiB/293102msec) clat (usec): min=60, max=356719, avg=961.03, stdev=6854.14 lat (usec): min=67, max=356726, avg=997.48, stdev=6991.00 clat percentiles (usec): | 1.00th=[ 75], 5.00th=[ 87], 10.00th=[ 128], 20.00th=[ 137], | 30.00th=[ 139], 40.00th=[ 139], 50.00th=[ 143], 60.00th=[ 149], | 70.00th=[ 285], 80.00th=[ 289], 90.00th=[ 310], 95.00th=[ 351], | 99.00th=[ 41157], 99.50th=[ 58459], 99.90th=[ 71828], 99.95th=[ 91751], | 99.99th=[177210] bw ( KiB/s): min= 746, max= 8118, per=23.52%, avg=3365.87, stdev=960.59, samples=2341 iops : min= 186, max= 2029, avg=841.10, stdev=240.15, samples=2341 lat (usec) : 100=6.97%, 250=58.31%, 500=30.98%, 750=1.38%, 1000=0.52% lat (msec) : 2=0.12%, 4=0.12%, 10=0.19%, 20=0.05%, 50=0.80% lat (msec) : 100=0.54%, 250=0.04%, 500=0.01% cpu : usr=0.16%, sys=19.53%, ctx=17858, majf=0, minf=2 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=0,1048576,0,0 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=13.0MiB/s (14.7MB/s), 13.0MiB/s-13.0MiB/s (14.7MB/s-14.7MB/s), io=4096MiB (4295MB), run=293102-293102msec