Here we go! I set the fio block size from 64k to 128k and man that sped it up!
Read speed is there, but I’m not sure about write speed. Seems to be limited somehow. Maxing at 2GB/s? Is that normal or should it be higher?
So then back to my original question
: why am I not able to saturate the link over fiber in the same way?
One appears to be some weird issue with either Explorer or my NVMe drives in Windows. But then the CrystalDiskMark write performance was 500MB/s slower over fiber. Like someone suggested before, it could be that those 25Gb packets are being buffered, but I thought there was some link speed negotiation that took place.
I’m trying to buy a used ConnectX-6 for my NAS as well, but I might end up buying new.
ZFS Block: 128k
fio Block: 128k
# fio --filename=/mnt/Bunnies/Test/fio4.tmp --direct=1 --rw=read --bs=128k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
throughput-test-job: (g=0): rw=read, bs=(R) 128KiB-128KiB, (W) 128KiB-128KiB, (T) 128KiB-128KiB, ioengine=libaio, iodepth=64
...
fio-3.25
Starting 4 processes
Jobs: 4 (f=4): [R(4)][2.5%][r=18.4GiB/s][r=151k IOPS][eta 01m:57s]
Jobs: 4 (f=4): [R(4)][4.2%][r=17.7GiB/s][r=145k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][5.8%][r=17.5GiB/s][r=143k IOPS][eta 01m:53s]
Jobs: 4 (f=4): [R(4)][7.5%][r=17.8GiB/s][r=146k IOPS][eta 01m:51s]
Jobs: 4 (f=4): [R(4)][9.2%][r=17.8GiB/s][r=146k IOPS][eta 01m:49s]
Jobs: 4 (f=4): [R(4)][10.9%][r=17.7GiB/s][r=145k IOPS][eta 01m:46s]
^Cbs: 4 (f=4): [R(4)][12.5%][r=17.9GiB/s][r=147k IOPS][eta 01m:45s]
fio: terminating on signal 2
throughput-test-job: (groupid=0, jobs=4): err= 0: pid=329360: Fri Feb 17 06:37:31 2023
read: IOPS=149k, BW=18.1GiB/s (19.5GB/s)(277GiB/15279msec)
slat (usec): min=11, max=520, avg=25.90, stdev= 4.46
clat (nsec): min=1530, max=5103.3k, avg=1696057.51, stdev=164266.31
lat (usec): min=25, max=5164, avg=1722.07, stdev=166.66
clat percentiles (usec):
| 1.00th=[ 1221], 5.00th=[ 1336], 10.00th=[ 1516], 20.00th=[ 1631],
| 30.00th=[ 1663], 40.00th=[ 1696], 50.00th=[ 1713], 60.00th=[ 1729],
| 70.00th=[ 1762], 80.00th=[ 1778], 90.00th=[ 1844], 95.00th=[ 1893],
| 99.00th=[ 2114], 99.50th=[ 2245], 99.90th=[ 2704], 99.95th=[ 3032],
| 99.99th=[ 4424]
bw ( MiB/s): min=17490, max=22232, per=100.00%, avg=18588.56, stdev=333.00, samples=120
iops : min=139924, max=177860, avg=148708.47, stdev=2663.97, samples=120
lat (usec) : 2=0.01%, 4=0.01%, 50=0.01%, 100=0.01%, 250=0.01%
lat (usec) : 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=98.29%, 4=1.68%, 10=0.02%
cpu : usr=3.82%, sys=96.16%, ctx=277, majf=0, minf=2116
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=2270298,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=18.1GiB/s (19.5GB/s), 18.1GiB/s-18.1GiB/s (19.5GB/s-19.5GB/s), io=277GiB (298GB), run=15279-15279msec
ZFS Block: 1M
fio Block: 256k
# fio --filename=/mnt/Bunnies/Test2/fio4.tmp --direct=1 --rw=read --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
throughput-test-job: (g=0): rw=read, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, (T) 256KiB-256KiB, ioengine=libaio, iodepth=64
...
fio-3.25
Starting 4 processes
Jobs: 4 (f=4): [R(4)][2.5%][r=12.5GiB/s][r=51.3k IOPS][eta 01m:57s]
Jobs: 4 (f=4): [R(4)][4.2%][r=11.2GiB/s][r=45.7k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][5.8%][r=12.6GiB/s][r=51.6k IOPS][eta 01m:53s]
Jobs: 4 (f=4): [R(4)][7.5%][r=12.6GiB/s][r=51.4k IOPS][eta 01m:51s]
Jobs: 4 (f=4): [R(4)][9.2%][r=12.4GiB/s][r=50.9k IOPS][eta 01m:49s]
Jobs: 4 (f=4): [R(4)][10.9%][r=11.8GiB/s][r=48.5k IOPS][eta 01m:46s]
^Cbs: 4 (f=4): [R(4)][12.5%][r=11.5GiB/s][r=47.2k IOPS][eta 01m:45s]
fio: terminating on signal 2
throughput-test-job: (groupid=0, jobs=4): err= 0: pid=334710: Fri Feb 17 06:39:14 2023
read: IOPS=49.1k, BW=11.0GiB/s (12.9GB/s)(188GiB/15665msec)
slat (usec): min=17, max=2047, avg=80.20, stdev=15.39
clat (nsec): min=1800, max=13426k, avg=5127752.41, stdev=592162.92
lat (usec): min=89, max=13622, avg=5208.07, stdev=601.05
clat percentiles (usec):
| 1.00th=[ 4686], 5.00th=[ 4686], 10.00th=[ 4752], 20.00th=[ 4817],
| 30.00th=[ 4817], 40.00th=[ 4883], 50.00th=[ 4948], 60.00th=[ 5014],
| 70.00th=[ 5145], 80.00th=[ 5276], 90.00th=[ 5800], 95.00th=[ 6259],
| 99.00th=[ 7373], 99.50th=[ 8848], 99.90th=[ 9765], 99.95th=[10552],
| 99.99th=[12387]
bw ( MiB/s): min= 9569, max=13106, per=100.00%, avg=12285.11, stdev=211.50, samples=124
iops : min=38276, max=52426, avg=49140.45, stdev=846.02, samples=124
lat (usec) : 2=0.01%, 4=0.01%, 100=0.01%, 250=0.01%, 500=0.01%
lat (usec) : 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=99.90%, 20=0.08%
cpu : usr=1.50%, sys=98.43%, ctx=351, majf=0, minf=2125
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=769716,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=11.0GiB/s (12.9GB/s), 11.0GiB/s-11.0GiB/s (12.9GB/s-12.9GB/s), io=188GiB (202GB), run=15665-15665msec
ZFS Block: 1M
fio Block: 512k
# fio --filename=/mnt/Bunnies/Test2/fio4.tmp --direct=1 --rw=read --bs=512k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
throughput-test-job: (g=0): rw=read, bs=(R) 512KiB-512KiB, (W) 512KiB-512KiB, (T) 512KiB-512KiB, ioengine=libaio, iodepth=64
...
fio-3.25
Starting 4 processes
Jobs: 4 (f=4): [R(4)][2.5%][r=10.0GiB/s][r=22.5k IOPS][eta 01m:57s]
Jobs: 4 (f=4): [R(4)][5.0%][r=9.94GiB/s][r=20.4k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][6.6%][r=10.5GiB/s][r=21.5k IOPS][eta 01m:53s]
Jobs: 4 (f=4): [R(4)][8.3%][r=10.2GiB/s][r=20.9k IOPS][eta 01m:51s]
^Cbs: 4 (f=4): [R(4)][8.3%][r=10.3GiB/s][r=21.0k IOPS][eta 01m:50s]
fio: terminating on signal 2
throughput-test-job: (groupid=0, jobs=4): err= 0: pid=337417: Fri Feb 17 06:39:54 2023
read: IOPS=21.5k, BW=10.5GiB/s (11.3GB/s)(108GiB/10307msec)
slat (usec): min=31, max=2028, avg=184.13, stdev=44.28
clat (usec): min=2, max=21432, avg=11711.67, stdev=972.86
lat (usec): min=195, max=21715, avg=11896.01, stdev=985.81
clat percentiles (usec):
| 1.00th=[10159], 5.00th=[10421], 10.00th=[10683], 20.00th=[10945],
| 30.00th=[11207], 40.00th=[11469], 50.00th=[11731], 60.00th=[11863],
| 70.00th=[11994], 80.00th=[12256], 90.00th=[12649], 95.00th=[13173],
| 99.00th=[15008], 99.50th=[15926], 99.90th=[18744], 99.95th=[19530],
| 99.99th=[20841]
bw ( MiB/s): min= 9413, max=11528, per=100.00%, avg=10752.85, stdev=152.05, samples=80
iops : min=18826, max=23056, avg=21505.70, stdev=304.10, samples=80
lat (usec) : 4=0.01%, 10=0.01%, 250=0.01%, 500=0.01%, 750=0.01%
lat (usec) : 1000=0.01%
lat (msec) : 2=0.01%, 4=0.02%, 10=0.35%, 20=99.57%, 50=0.04%
cpu : usr=1.01%, sys=98.90%, ctx=249, majf=0, minf=2165
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.9%
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.1%, >=64=0.0%
issued rwts: total=221609,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=10.5GiB/s (11.3GB/s), 10.5GiB/s-10.5GiB/s (11.3GB/s-11.3GB/s), io=108GiB (116GB), run=10307-10307msec
ZFS Block: 1M
fio Block: 1M
# fio --filename=/mnt/Bunnies/Test2/fio4.tmp --direct=1 --rw=read --bs=1M --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
throughput-test-job: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=libaio, iodepth=64
...
fio-3.25
Starting 4 processes
Jobs: 4 (f=4): [R(4)][2.5%][r=11.5GiB/s][r=11.7k IOPS][eta 01m:57s]
Jobs: 4 (f=4): [R(4)][4.2%][r=11.4GiB/s][r=11.7k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][5.8%][r=11.5GiB/s][r=11.7k IOPS][eta 01m:53s]
^Cbs: 4 (f=4): [R(4)][6.7%][r=11.5GiB/s][r=11.8k IOPS][eta 01m:52s]
fio: terminating on signal 2
throughput-test-job: (groupid=0, jobs=4): err= 0: pid=333736: Fri Feb 17 06:38:46 2023
read: IOPS=11.6k, BW=11.3GiB/s (12.2GB/s)(97.7GiB/8609msec)
slat (usec): min=106, max=2240, avg=342.52, stdev=23.82
clat (usec): min=2, max=31929, avg=21657.58, stdev=1011.32
lat (usec): min=375, max=32335, avg=22000.30, stdev=1020.36
clat percentiles (usec):
| 1.00th=[19792], 5.00th=[20579], 10.00th=[20841], 20.00th=[21103],
| 30.00th=[21365], 40.00th=[21365], 50.00th=[21627], 60.00th=[21627],
| 70.00th=[21890], 80.00th=[22152], 90.00th=[22676], 95.00th=[22938],
| 99.00th=[23987], 99.50th=[24249], 99.90th=[27919], 99.95th=[29492],
| 99.99th=[31065]
bw ( MiB/s): min=10594, max=11914, per=99.87%, avg=11602.24, stdev=80.62, samples=68
iops : min=10594, max=11914, avg=11602.24, stdev=80.62, samples=68
lat (usec) : 4=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.02%, 10=0.07%, 20=1.36%, 50=98.53%
cpu : usr=0.51%, sys=99.43%, ctx=112, majf=0, minf=2225
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=99.7%
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.1%, >=64=0.0%
issued rwts: total=100010,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=11.3GiB/s (12.2GB/s), 11.3GiB/s-11.3GiB/s (12.2GB/s-12.2GB/s), io=97.7GiB (105GB), run=8609-8609msec
Wolves
ZFS block: 128k
fio block: 128k
# fio --filename=/mnt/Wolves/Test/fio4.tmp --direct=1 --rw=read --bs=128k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
throughput-test-job: (g=0): rw=read, bs=(R) 128KiB-128KiB, (W) 128KiB-128KiB, (T) 128KiB-128KiB, ioengine=libaio, iodepth=64
...
fio-3.25
Starting 4 processes
Jobs: 4 (f=4): [R(4)][2.5%][r=11.5GiB/s][r=94.2k IOPS][eta 01m:57s]
Jobs: 4 (f=4): [R(4)][4.2%][r=11.9GiB/s][r=97.1k IOPS][eta 01m:55s]
Jobs: 4 (f=4): [R(4)][5.8%][r=11.3GiB/s][r=92.3k IOPS][eta 01m:53s]
Jobs: 4 (f=4): [R(4)][7.5%][r=11.5GiB/s][r=94.5k IOPS][eta 01m:51s]
Jobs: 4 (f=4): [R(4)][9.2%][r=11.2GiB/s][r=91.5k IOPS][eta 01m:49s]
^Cbs: 4 (f=4): [R(4)][10.9%][r=11.1GiB/s][r=90.8k IOPS][eta 01m:46s]
fio: terminating on signal 2
throughput-test-job: (groupid=0, jobs=4): err= 0: pid=394673: Fri Feb 17 06:55:55 2023
read: IOPS=91.2k, BW=11.1GiB/s (11.0GB/s)(146GiB/13110msec)
slat (usec): min=9, max=11930, avg=42.74, stdev=28.66
clat (nsec): min=1130, max=14835k, avg=2762550.82, stdev=463736.72
lat (usec): min=48, max=14880, avg=2805.44, stdev=470.26
clat percentiles (usec):
| 1.00th=[ 2245], 5.00th=[ 2278], 10.00th=[ 2343], 20.00th=[ 2409],
| 30.00th=[ 2573], 40.00th=[ 2769], 50.00th=[ 2802], 60.00th=[ 2802],
| 70.00th=[ 2835], 80.00th=[ 2868], 90.00th=[ 2933], 95.00th=[ 3130],
| 99.00th=[ 4686], 99.50th=[ 5080], 99.90th=[ 5604], 99.95th=[ 6456],
| 99.99th=[13960]
bw ( MiB/s): min= 7307, max=13370, per=100.00%, avg=11408.26, stdev=306.79, samples=104
iops : min=58456, max=106962, avg=91266.15, stdev=2454.35, samples=104
lat (usec) : 2=0.01%, 4=0.01%, 50=0.01%, 100=0.01%, 250=0.01%
lat (usec) : 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.23%, 4=96.09%, 10=3.66%, 20=0.02%
cpu : usr=2.73%, sys=73.63%, ctx=864292, majf=0, minf=2113
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.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.1%, >=64=0.0%
issued rwts: total=1195796,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=11.1GiB/s (11.0GB/s), 11.1GiB/s-11.1GiB/s (11.0GB/s-11.0GB/s), io=146GiB (157GB), run=13110-13110msec