This blog post is a very long record of my testing of a disk array. I’m building a cheap NAS with 2 USB disks (8GB, 5400RPM) in a ZFS mirror configuration plugged in to an N100 MiniPC with 5Gbit USB links. I’m trying several enclosures: a Yottamaster dual bay, two SABRENT single bays, and an OWC dual bay. My main goal here is to find a reliable enclosure. (Spoiler: it’s the OWC.)
I’m running everything on Proxmox. Most of my tests are with Proxmox managing a ZFS pool and creating a virtual disk it passes in to an OpenMediaVault VM (aka OMV). Then I CIFS/SMB mount the disk back on the Proxmox host for further testing. I also did a bit of testing with TrueNAS in a VM where Proxmox just passes the USB disks in as devices for TrueNAS to manage a pool on.
Conclusions
- Two of three USB enclosures generate kernel errors. Under heavy load there will be a command failure followed by a USB reset about every 30 minutes. In all cases the system recovers and it looks like no data is lost.
- The OWC enclosure generates no kernel errors. It is also the lowest temperatures.
- Throughput is wildly variable, sometimes transfers stall. I assume it’s buffering.
- Network filesystems buffer even if you set various modes telling them not to.
- TrueNAS seems to have better throughput than OMV. I didn’t test carefully.
- TrueNAS is unusable with the Yottamaster enclosure, too many errors. It sort of worked with the SABRENT. Didn’t try the OWC.
- The Yottamaster enclosure is unsuitable. Doesn’t turn itself on after a power outage, also not adequate cooling.
- The SABRENT enclosures are OK. I don’t love having two power supplies. There were a few more errors in my testing but maybe that was just bad luck.
Decisions
- I’m going with the OWC enclosure.
- I’m going to stick with Proxmox ZFS and OMV for the NAS. There’s evidence TrueNAS performs better but I’m nervous about its complexity. Also feeling burned after the bad first experience with the Yottamaster enclosure although that’s probably the USB device’s fault.
The test job
I’ve been enjoying learning fio, the disk throughput tool, mostly because it has very good docs. Which means not only can I read them but the AIs can too. Phind gets it wrong sometimes though so I’m mostly hand-crafting my own fio setups now.
I cooked up a job file (see below) which I’m using as a small stress test as I try different USB hardware and ZFS / virtualization / network file system configurations. My main goal here is to run it for a long time to see if the disks fail in some way, also to measure temperature. I’m less worried about the actual throughput although it’s interesting.
The job file defines a job against a 1GB file. Random reads and writes of blocks from 4k to 1M. Up to 16 in parallel (io_depth), direct I/O enabled. (Note direct=1 means O_DIRECT which doesn’t actually work over a network file system. Oops.) I’m running two jobs in parallel for 15 minutes.
In general I’m seeing throughput of about 28MB/s both read and write, maybe 130 IOPS. That’s whether native on the ZFS machine, through VM disk, or through SMB to the VM disk. (Presumably seek time is dominating.) Not very fast but this is a random access test on a spinning disk. (Sequential gets up to 250 MB/s).
Weirdly I’m seeing more like 100MB/s with an SMB network mount. I’ve chalked this up to me not understanding caching in network file systems. Details below.
Here’s my results from several hours of testing. fio was run on Proxmox natively (which owns the ZFS pool), then on a OpenMediaVault VM (OMV) which gets a virtual disk from Proxmox, then from the Proxmox host itself that has SMB mounted the share from OMV. I also did a few tests with a different configuration: TrueNAS managing the two USB disks directly as USB devices and exporting over SMB.
Measurements
Tests with various enclosures, then some extra scenarios with the OWC enclosure.
OWC results
The hardware is a Mercury Elite Pro Dual, USB 3.1 at 5GBit, UAS. This device can do RAID bit I have it in JBOD mode, “IND”. PITA to get the disks installed, the mechanical design is not great, but it seem sturdy and has a little fan. It also advertises USB 3.1 (5Gbit) and there’s a theory that newer USB revisions imply newer, better chipsets.
Smartctl requires -d sat to work.
Max temperature: 34°C, the fan really helps. The disks are pretty noisy, the enclosure does nothing to dampen the sound.
No errors from the kernel! Haven’t seen a single UAS error after several hours of testing, unlike the other enclosures.
Throughput
- Proxmox ZFS native run 1: 21.0MiB/s read, 13.0 write, 97 IOPS.
- Proxmox ZFS native run 2: 21.4 read, 13.6 write.
- OMV: read 24.9 write 13.6, 109 IOPS
- SMB client of OMV run 1: read 122 MiB/s, write 66.5 MiB/s, 552 IOPS.
- SMB client of OMV run 2: read 133 MiB/s, write 72 MiB/s
The ZFS native test seems pretty slow at 21/13, it’s the slowest of the three enclosures I tried. Although that’s not that much slower than the Yottamaster dual enclosure test at 28/18. hdparm -t (a simple sequential test of a single drive) shows 210MB/s, so it’s not totally broken.
Yottamaster results
Yottamaster PS200U3. One dual disk USB enclosure at 5Gbit USB 3.0, UAS.
smartctl works out of the box on Proxmox, needed -d sat in TrueNAS.
Max temperature: 52°C. Noisy too.
Kernel errors: while testing over about 90 minutes I got one driver reset of a read command.
Throughput
- Proxmox ZFS native: read 28MiB/s, write 18MiB/s, 131 IOPS.
- OMV run 1: read 27MiB/s, write 15MiB/s, 122 IOPS. (Had a reset!)
- OMV run 2: read 28MiB/s, write 16MiB/s, 127 IOPS.
- SMB client of OMV run 1: read 98MiB/s, write 53MiB/s, 443 IOPS.
- SMB client of OMV run 2: read 104MiB/s, write 55.7MiB/s, 470 IOPS.
SABRENT results
Two single disk SABRENT EC-KSL3 USB enclosures at 5Gbit USB 3.0. UAS. I’ve been using a third one of these for a week+ with good luck.
smartctl requires -d sat in Proxmox
Temperatures: 41. Quietest of the three.
More errors, but throughput looks good. While testing got an ugly UAS reset in the VM fio run. From the first error it took 54 seconds before a reset came through. OTOH it didn’t seem to affect throughput. Only one disk got reset, don’t know what ZFS does about that. A second reset during the SMB mount test, again not hurting throughput. Weird.
I also got a new kind of error I’ve not seen before, maybe related to erasing blocks? This error doesn’t end up in the SMART log.
[Mon Aug 12 01:28:06 2024] sd 1:0:0:0: [sdd] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[Mon Aug 12 01:28:06 2024] sd 1:0:0:0: [sdd] tag#0 Sense Key : Illegal Request [current]
[Mon Aug 12 01:28:06 2024] sd 1:0:0:0: [sdd] tag#0 Add. Sense: Invalid command operation code
[Mon Aug 12 01:28:06 2024] sd 1:0:0:0: [sdd] tag#0 CDB: Write same(16) 93 08 00 00 00 00 00 02 fe 90 00 00 09 70 00 00
[Mon Aug 12 01:28:06 2024] critical target error, dev sdd, sector 196240 op 0x3:(DISCARD) flags 0x800 phys_seg 1 prio class 0
All in all 3 kernel errors compared to just 1 with the Yottamaster for the same amount of testing. Feels bad man. The fio verify didn’t find any problems though. I ran a ZFS scrub and it didn’t find any problems.
Throughput
- Proxmox ZFS native: read 58, write 37, 266 IOPS.
- OMV run 1: read 60.3 write 33.5 , 270 IOPS. (Had a reset!)
- OMV run 2: read 59.8 write 33.7 , 275 IOPS (No reset).
- SMB client of OMV run 1: read 128 MiB/s, write 68.4 MiB/s, 578 IOPS.
- SMB client of OMV run 2: read 145 MiB/s, write 75 MiB/s, 658 IOPS.
- SMB client of OMV run 3: read 133 write 68. (Reset)
Note the Proxmox and OMV throughput is better, maybe 2x what I got with the dual bay enclosures. Is that as simple as it being because I’m using two USB ports and two 5Gbit connections? (The max throughput I’ve seen is about 200MB/s or 1.6Gbit, well under a single 5Gb wire, so it’s not as simple as max bandwidth.) OTOH I’ve gotten more errors and more variety of errors. But all the data seems to be correctly being read and written.
TrueNAS tests
In addition to testing enclosures I did a couple of tests with TrueNAS managing the ZFS pool using USB devices passed in from Proxmox. This failed catastrophically with the Yottamaster enclosure, far too many errors. These tests are with the SABRENT. I didn’t try the OWC with TrueNAS.
The main thing I was wondering was what sort of errors I’d see, if any. I saw only one error with three 15 minute runs on TrueNAS, about halfway through a VM test. Write(16) commands failed and it reset about 30 seconds later and seemed to carry on fine.
Throughput
- TrueNAS VM run 1: 122MiB/s read, 64 write, 550 IOPS
- TrueNAS VM run 2: 137 read, 72 write
- SMB client of TrueNAS VM: 138MiB/s read, 76 write, 630 IOPS
I’m less worried about throughput comparisons to OMV, I care most about stability. But compared to the Proxmox ZFS + OMV solution it seems both faster and with less jitter. That is not surprising but should be confirmed more.
SMB and buffering tests
I tried to understand more what was going on with the SMB clients being faster than local writes. It’s definitely related to O_DIRECT and other synchronous writes not being enabled on network filesystems. Most of my tests were with direct=1 in FIO but that doesn’t really mean anything on an SMB mount. Forcing sync writes slows the network tests way down.
I ran some 1 minute tests of different configs on the VM writing to its virtual disk. The FIO test set was 1GB which might fit in caches or might not. I noticed the second time I ran the same test it was much faster, which suggests warming up the caches is a big factor in a 1 minute test.
- direct=1, end_fsync=1 (like most tests): 15MiB/s read, 16 MiB/s write.
- direct=0, buffered=1, end_fsync=1: 15MiB/s read, 15 MiB/s write.
- fio defaults (buffered and no fsync, I think): 13MiB/s read, 13MiB write.
- sync=1, fsync=1: 3.2MiB/s read, 3.7MiB/s write.
I can’t make much sense of these local results: even with full buffering I can’t get to the 100MiB/s the disk is capable of. Maybe it’s a virtualization issue, or the client workload being on the disk. The VM has 4GB of RAM allocated which I think should be enough to cache a 1GB working set.
I also re-ran these tests on the SMB host. I ran the first one twice and took the second result.
- direct=1, end_fsync=1 (like most tests): 102MiB/s read, 64 MiB/s write.
- direct=0, buffered=1, end_fsync=1: 110MiB/s read, 72.9 MiB/s write.
- fio defaults (buffered and no fsync, I think): 160 read, 118 write.
- sync=1, fsync=1: 3.0 read, 3.3 write.
These results suggest that the network filesystems are caching even in most IO modes that say don’t. That’s fair, it’s a real world result for a network client. Forcing sync and fsync does slow it down as expected.
To be honest, I don’t really understand all of what’s going on here, I don’t know FIO or network filesystems well enough to fully sort this out. Given my main goal was stability testing, eh, I’m OK with my ignorance for now.
Application testing
I did a bunch of real world testing, writing via SMB to the OMV VM with the OWS enclosure.
- Linux rsync of a music library: 21MB/s.
- Linux dd writing 16GB from /dev/urandom: 70MB/s
- dd reading 16GB of random: 182MB/s
- dd writing 16GB from /dev/zero: 188MB/s
- dd reading 16GB of zeros: 718MB/s
- WSL (drvfs) reading 16GB of random: 42MB/s
- WSL (drvfs) writing 1GB of random: 39MB/s
- Windows explorer reading or writing 1GB of random: 112MB/s
The FIO job file
[stress]
name=stress
description=Nelson small stress test
runtime=900
numjobs=2
time_based=1
rw=randrw
verify=crc32c
bsrange=4k-1M
size=1G
ioengine=libaio
iodepth=16
direct=1
end_fsync=1
Example output (from an OMV VM run)
This run had a kernel reset in the first minute or two.
stress: (g=0): rw=randrw, bs=(R) 4096B-1024KiB, (W) 4096B-1024KiB, (T) 4096B-1024KiB, ioengine=libaio, iodepth=16
...
fio-3.33
Starting 2 processes
Jobs: 2 (f=2): [f(2)][100.0%][eta 00m:00s]
stress: (groupid=0, jobs=1): err= 0: pid=128236: Sun Aug 11 21:42:17 2024
Description : [Nelson small stress test]
read: IOPS=42, BW=13.9MiB/s (14.6MB/s)(12.3GiB/904825msec)
slat (usec): min=2, max=8473, avg=26.58, stdev=52.04
clat (usec): min=30, max=8023.4k, avg=158853.13, stdev=208421.15
lat (usec): min=42, max=8023.4k, avg=158879.70, stdev=208425.03
clat percentiles (usec):
| 1.00th=[ 66], 5.00th=[ 137], 10.00th=[ 245],
| 20.00th=[ 742], 30.00th=[ 1565], 40.00th=[ 3621],
| 50.00th=[ 79168], 60.00th=[ 143655], 70.00th=[ 206570],
| 80.00th=[ 316670], 90.00th=[ 480248], 95.00th=[ 583009],
| 99.00th=[ 742392], 99.50th=[ 801113], 99.90th=[ 926942],
| 99.95th=[1027605], 99.99th=[3439330]
bw ( KiB/s): min= 24, max=258184, per=47.42%, avg=13000.64, stdev=16851.88, samples=985
iops : min= 0, max= 564, avg=38.20, stdev=39.37, samples=985
write: IOPS=23, BW=8021KiB/s (8213kB/s)(6549MiB/836125msec); 0 zone resets
slat (usec): min=7, max=3420.8k, avg=343.27, stdev=24216.95
clat (usec): min=6, max=30381k, avg=292247.93, stdev=1846279.09
lat (usec): min=58, max=30381k, avg=292591.21, stdev=1846416.62
clat percentiles (usec):
| 1.00th=[ 70], 5.00th=[ 101], 10.00th=[ 131],
| 20.00th=[ 192], 30.00th=[ 293], 40.00th=[ 979],
| 50.00th=[ 5669], 60.00th=[ 13173], 70.00th=[ 72877],
| 80.00th=[ 183501], 90.00th=[ 367002], 95.00th=[ 526386],
| 99.00th=[ 8791262], 99.50th=[17112761], 99.90th=[17112761],
| 99.95th=[17112761], 99.99th=[17112761]
bw ( KiB/s): min= 8, max=299704, per=87.37%, avg=13650.88, stdev=19572.55, samples=977
iops : min= 0, max= 646, avg=40.49, stdev=45.01, samples=977
lat (usec) : 10=0.01%, 50=0.22%, 100=3.47%, 250=12.13%, 500=8.42%
lat (usec) : 750=2.49%, 1000=2.13%
lat (msec) : 2=7.58%, 4=6.57%, 10=4.21%, 20=4.34%, 50=3.45%
lat (msec) : 100=4.07%, 250=19.25%, 500=13.82%, 750=6.52%, 1000=0.65%
lat (msec) : 2000=0.08%, >=2000=0.61%
cpu : usr=0.51%, sys=0.23%, ctx=44359, majf=0, minf=60
IO depths : 1=0.1%, 2=0.1%, 4=0.2%, 8=0.3%, 16=99.4%, 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.1%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=38221,19954,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
stress: (groupid=0, jobs=1): err= 0: pid=128237: Sun Aug 11 21:42:17 2024
Description : [Nelson small stress test]
read: IOPS=36, BW=12.9MiB/s (13.5MB/s)(11.4GiB/904823msec)
slat (usec): min=2, max=37758, avg=29.45, stdev=218.32
clat (usec): min=3, max=5053.6k, avg=184087.63, stdev=201615.07
lat (usec): min=41, max=5053.7k, avg=184117.07, stdev=201618.12
clat percentiles (usec):
| 1.00th=[ 65], 5.00th=[ 135], 10.00th=[ 219],
| 20.00th=[ 490], 30.00th=[ 1680], 40.00th=[ 58983],
| 50.00th=[ 137364], 60.00th=[ 187696], 70.00th=[ 256902],
| 80.00th=[ 362808], 90.00th=[ 484443], 95.00th=[ 583009],
| 99.00th=[ 725615], 99.50th=[ 775947], 99.90th=[ 926942],
| 99.95th=[1002439], 99.99th=[1635779]
bw ( KiB/s): min= 24, max=303480, per=48.60%, avg=13324.66, stdev=15923.38, samples=900
iops : min= 0, max= 636, avg=36.52, stdev=34.91, samples=900
write: IOPS=21, BW=7829KiB/s (8017kB/s)(6208MiB/812003msec); 0 zone resets
slat (usec): min=8, max=23051, avg=172.05, stdev=269.40
clat (usec): min=4, max=26223k, avg=345496.71, stdev=1929292.62
lat (usec): min=56, max=26223k, avg=345668.76, stdev=1929294.26
clat percentiles (usec):
| 1.00th=[ 68], 5.00th=[ 101], 10.00th=[ 130],
| 20.00th=[ 192], 30.00th=[ 269], 40.00th=[ 400],
| 50.00th=[ 2409], 60.00th=[ 11469], 70.00th=[ 33162],
| 80.00th=[ 214959], 90.00th=[ 438305], 95.00th=[ 591397],
| 99.00th=[ 9328133], 99.50th=[17112761], 99.90th=[17112761],
| 99.95th=[17112761], 99.99th=[17112761]
bw ( KiB/s): min= 16, max=360360, per=91.60%, avg=14312.77, stdev=19145.59, samples=884
iops : min= 0, max= 756, avg=39.49, stdev=41.87, samples=884
lat (usec) : 4=0.01%, 10=0.01%, 50=0.24%, 100=3.43%, 250=13.62%
lat (usec) : 500=11.35%, 750=3.48%, 1000=1.55%
lat (msec) : 2=3.97%, 4=2.64%, 10=2.95%, 20=4.05%, 50=3.18%
lat (msec) : 100=3.23%, 250=19.75%, 500=17.91%, 750=7.21%, 1000=0.56%
lat (msec) : 2000=0.06%, >=2000=0.80%
cpu : usr=0.62%, sys=0.19%, ctx=42436, majf=0, minf=58
IO depths : 1=0.1%, 2=0.1%, 4=0.2%, 8=0.4%, 16=99.3%, 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.1%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=33008,17566,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
Run status group 0 (all jobs):
READ: bw=26.8MiB/s (28.1MB/s), 12.9MiB/s-13.9MiB/s (13.5MB/s-14.6MB/s), io=23.7GiB (25.4GB), run=904823-904825msec
WRITE: bw=15.3MiB/s (16.0MB/s), 7829KiB/s-8021KiB/s (8017kB/s-8213kB/s), io=12.5GiB (13.4GB), run=812003-836125msec
Disk stats (read/write):
sdb: ios=71241/37679, merge=0/79, ticks=12088873/12617701, in_queue=25410356, util=98.74%
Example output (fast OMV SMB)
stress: (g=0): rw=randrw, bs=(R) 4096B-1024KiB, (W) 4096B-1024KiB, (T) 4096B-1024KiB, ioengine=libaio, iodepth=16
...
fio-3.33
Starting 2 processes
Jobs: 2 (f=2): [F(2)][100.0%][eta 00m:00s]
stress: (groupid=0, jobs=1): err= 0: pid=2695937: Sun Aug 11 22:35:44 2024
Description : [Nelson small stress test]
read: IOPS=145, BW=47.6MiB/s (49.9MB/s)(42.5GiB/913477msec)
slat (usec): min=2, max=26353, avg=58.40, stdev=206.57
clat (usec): min=104, max=2047.9k, avg=12816.66, stdev=61461.93
lat (usec): min=117, max=2047.9k, avg=12875.05, stdev=61461.19
clat percentiles (usec):
| 1.00th=[ 996], 5.00th=[ 2147], 10.00th=[ 2769],
| 20.00th=[ 3621], 30.00th=[ 4424], 40.00th=[ 5407],
| 50.00th=[ 6521], 60.00th=[ 7701], 70.00th=[ 9110],
| 80.00th=[ 10814], 90.00th=[ 13698], 95.00th=[ 17171],
| 99.00th=[ 120062], 99.50th=[ 446694], 99.90th=[ 960496],
| 99.95th=[1166017], 99.99th=[1484784]
bw ( KiB/s): min= 33, max=571776, per=100.00%, avg=105476.19, stdev=139877.54, samples=369
iops : min= 0, max= 1773, avg=299.33, stdev=402.43, samples=369
write: IOPS=78, BW=25.4MiB/s (26.7MB/s)(21.9GiB/882111msec); 0 zone resets
slat (usec): min=8, max=19996, avg=422.84, stdev=490.09
clat (usec): min=120, max=4478.9k, avg=20844.50, stdev=104407.14
lat (usec): min=145, max=4479.4k, avg=21267.34, stdev=104398.63
clat percentiles (usec):
| 1.00th=[ 570], 5.00th=[ 2376], 10.00th=[ 2966],
| 20.00th=[ 3884], 30.00th=[ 4817], 40.00th=[ 5997],
| 50.00th=[ 7177], 60.00th=[ 8717], 70.00th=[ 10552],
| 80.00th=[ 13435], 90.00th=[ 22938], 95.00th=[ 55837],
| 99.00th=[ 270533], 99.50th=[ 505414], 99.90th=[1535116],
| 99.95th=[1954546], 99.99th=[4076864]
bw ( KiB/s): min= 116, max=588064, per=100.00%, avg=111529.76, stdev=145498.82, samples=361
iops : min= 0, max= 1835, avg=319.26, stdev=420.92, samples=361
lat (usec) : 250=0.15%, 500=0.39%, 750=0.33%, 1000=0.28%
lat (msec) : 2=2.62%, 4=19.68%, 10=49.18%, 20=21.19%, 50=3.53%
lat (msec) : 100=1.01%, 250=0.79%, 500=0.38%, 750=0.21%, 1000=0.13%
lat (msec) : 2000=0.13%, >=2000=0.02%
cpu : usr=1.78%, sys=1.96%, ctx=161455, majf=0, minf=61
IO depths : 1=0.1%, 2=0.1%, 4=0.2%, 8=0.3%, 16=99.4%, 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.1%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=132944,68929,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
stress: (groupid=0, jobs=1): err= 0: pid=2695938: Sun Aug 11 22:35:44 2024
Description : [Nelson small stress test]
read: IOPS=144, BW=51.0MiB/s (53.5MB/s)(45.5GiB/913651msec)
slat (usec): min=2, max=23315, avg=57.89, stdev=177.90
clat (usec): min=101, max=1961.1k, avg=12840.81, stdev=60523.78
lat (usec): min=124, max=1961.2k, avg=12898.70, stdev=60523.08
clat percentiles (usec):
| 1.00th=[ 1057], 5.00th=[ 2212], 10.00th=[ 2966],
| 20.00th=[ 3949], 30.00th=[ 4752], 40.00th=[ 5669],
| 50.00th=[ 6587], 60.00th=[ 7767], 70.00th=[ 8979],
| 80.00th=[ 10814], 90.00th=[ 13566], 95.00th=[ 16909],
| 99.00th=[ 113771], 99.50th=[ 480248], 99.90th=[ 926942],
| 99.95th=[1098908], 99.99th=[1434452]
bw ( KiB/s): min= 11, max=535318, per=100.00%, avg=116860.38, stdev=139385.70, samples=352
iops : min= 0, max= 1606, avg=310.24, stdev=377.85, samples=352
write: IOPS=77, BW=27.3MiB/s (28.6MB/s)(23.6GiB/884188msec); 0 zone resets
slat (usec): min=6, max=26990, avg=438.46, stdev=504.53
clat (usec): min=132, max=2040.9k, avg=17837.66, stdev=67499.86
lat (usec): min=162, max=2041.4k, avg=18276.12, stdev=67487.74
clat percentiles (usec):
| 1.00th=[ 668], 5.00th=[ 2704], 10.00th=[ 3556],
| 20.00th=[ 4686], 30.00th=[ 5669], 40.00th=[ 6783],
| 50.00th=[ 7963], 60.00th=[ 9241], 70.00th=[ 10945],
| 80.00th=[ 13566], 90.00th=[ 21365], 95.00th=[ 46924],
| 99.00th=[ 204473], 99.50th=[ 387974], 99.90th=[1019216],
| 99.95th=[1434452], 99.99th=[1769997]
bw ( KiB/s): min= 82, max=585474, per=100.00%, avg=126777.70, stdev=149747.38, samples=347
iops : min= 0, max= 1630, avg=335.09, stdev=397.89, samples=347
lat (usec) : 250=0.12%, 500=0.35%, 750=0.31%, 1000=0.27%
lat (msec) : 2=2.34%, 4=14.81%, 10=53.90%, 20=22.06%, 50=3.49%
lat (msec) : 100=0.93%, 250=0.67%, 500=0.31%, 750=0.21%, 1000=0.15%
lat (msec) : 2000=0.09%, >=2000=0.01%
cpu : usr=2.50%, sys=2.06%, ctx=165105, majf=0, minf=58
IO depths : 1=0.1%, 2=0.1%, 4=0.2%, 8=0.4%, 16=99.3%, 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.1%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=132204,68715,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=16
Run status group 0 (all jobs):
READ: bw=98.6MiB/s (103MB/s), 47.6MiB/s-51.0MiB/s (49.9MB/s-53.5MB/s), io=88.0GiB (94.5GB), run=913477-913651msec
WRITE: bw=52.7MiB/s (55.2MB/s), 25.4MiB/s-27.3MiB/s (26.7MB/s-28.6MB/s), io=45.5GiB (48.8GB), run=882111-884188msec