Comparison benchmarks

Using this script

Single NVME

Testgroup "current"
===   1 file series   ===
1 file, 1 thread, seq 1M writes, simple: 788 write iops (435% HDD)
1 file, 1 thread, rnd 16k writes, simple: 2222 write iops (312% HDD)
1 file, 1 thread, rnd 16k writes, simple, take 2: 2216 write iops (336% HDD)
1 file, 16 threads, rnd 4k writes, posixaio: 5911 write iops (1684% HDD)
1 file, 16 threads, rnd 8k writes, posixaio:   5890 write iops (1389% HDD)
1 file, 16 threads, rnd 16k writes, posixaio: 5446 write iops (1218% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, take 2: 5450 write iops (1081% HDD)
===  16 file series   ===
16 files, 1 thread each, seq 1M writes, simple: 1361 write iops (907% HDD)
16 files, 1 thread each, rnd 16k writes, simple: 6853 write iops (1047% HDD)
16 files, 1 thread each, rnd 16k writes, simple, take 2: 6926 write iops (1104% HDD)
16 files, 1 thread each, rnd 16k writes, posixaio: 6001 write iops (1287% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio: 7825 write iops (1457% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, take 2: 7798 write iops (1556% HDD)
===   O_SYNC series   ===
1 file, 1 thread, rnd 16k writes, simple, o_sync: 1935 write iops (1248% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, o_sync: 2020 write iops (838% HDD)
16 files, 1 thread each, rnd 16k writes, simple, o_sync: 5718 write iops (1132% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, o_sync: 5538 write iops (1088% HDD)
===    read series    ===
1 file, 1 thread, seq 1M reads, simple: 1022 read iops (27% HDD)
1 file, 16 threads, rnd 16k reads, posixaio: 4845 read iops (2833% HDD)
16 files, 1 thread each, seq 1M reads, simple: 1218 read iops (30% HDD)
16 files, 1 thread each, rnd 16k reads, posixaio: 57716 read iops (12280% HDD)
16 files, 16 threads each, rnd 16k reads, posixaio: 63905 read iops (12884% HDD)
=== native aio series ===
1 file, 16 threads, rnd 16k writes, native aio: 2190 write iops (357% HDD)
16 files, 16 threads each, rnd 16k writes, native aio: 6817 write iops (1360% HDD)
1 file, 16 threads, rnd 16k reads, native aio: 5994 read iops (4575% HDD)
16 files, 16 threads each, rnd 16k reads, native aio: 61152 read iops (12378% HDD)
Tests complete on linux-k9r1 @ 2019-10-02 23:20:45.
Files remain. To clean up, add argument "cleanup".
===   1 file series   ===
1 file, 1 thread, seq 1M writes, simple: 820 write iops (453% HDD)
1 file, 1 thread, rnd 16k writes, simple: 2258 write iops (317% HDD)
1 file, 1 thread, rnd 16k writes, simple, take 2: 2243 write iops (340% HDD)
1 file, 16 threads, rnd 4k writes, posixaio: 6301 write iops (1795% HDD)
1 file, 16 threads, rnd 8k writes, posixaio: 6203 write iops (1462% HDD)
1 file, 16 threads, rnd 16k writes, posixaio: 5711 write iops (1277% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, take 2: 5651 write iops (1121% HDD)
===  16 file series   ===
16 files, 1 thread each, seq 1M writes, simple: 1358 write iops (905% HDD)
16 files, 1 thread each, rnd 16k writes, simple: 6920 write iops (1058% HDD)
16 files, 1 thread each, rnd 16k writes, simple, take 2: 6941 write iops (1107% HDD)
16 files, 1 thread each, rnd 16k writes, posixaio: 6068 write iops (1302% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio: 7612 write iops (1417% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, take 2: 7568 write iops (1510% HDD)
===   O_SYNC series   ===
1 file, 1 thread, rnd 16k writes, simple, o_sync: 1942 write iops (1252% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, o_sync: 2015 write iops (836% HDD)
16 files, 1 thread each, rnd 16k writes, simple, o_sync: 5842 write iops (1156% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, o_sync: 5675 write iops (1114% HDD)
===    read series    ===
1 file, 1 thread, seq 1M reads, simple: 1032 read iops (27% HDD)
1 file, 16 threads, rnd 16k reads, posixaio: 4760 read iops (2783% HDD)
16 files, 1 thread each, seq 1M reads, simple: 1211 read iops (29% HDD)
16 files, 1 thread each, rnd 16k reads, posixaio: 58127 read iops (12367% HDD)
16 files, 16 threads each, rnd 16k reads, posixaio: 64106 read iops (12924% HDD)
=== native aio series ===
1 file, 16 threads, rnd 16k writes, native aio: 2259 write iops (368% HDD)
16 files, 16 threads each, rnd 16k writes, native aio: 6435 write iops (1284% HDD)
1 file, 16 threads, rnd 16k reads, native aio: 6169 read iops (4709% HDD)
16 files, 16 threads each, rnd 16k reads, native aio: 62023 read iops (12555% HDD)

SATA SSD

Testgroup "current"
===   1 file series   ===
1 file, 1 thread, seq 1M writes, simple: 134 write iops (74% HDD)
1 file, 1 thread, rnd 16k writes, simple: 207 write iops (29% HDD)
1 file, 1 thread, rnd 16k writes, simple, take 2: 230 write iops (34% HDD)
1 file, 16 threads, rnd 4k writes, posixaio: 347 write iops (98% HDD)
1 file, 16 threads, rnd 8k writes, posixaio: 367 write iops (86% HDD)
1 file, 16 threads, rnd 16k writes, posixaio: 270 write iops (60% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, take 2: 273 write iops (54% HDD)
===  16 file series   ===
16 files, 1 thread each, seq 1M writes, simple: 57 write iops (38% HDD)
16 files, 1 thread each, rnd 16k writes, simple: 726 write iops (111% HDD)
16 files, 1 thread each, rnd 16k writes, simple, take 2: 958 write iops (152% HDD)
16 files, 1 thread each, rnd 16k writes, posixaio: 568 write iops (121% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio: 759 write iops (141% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, take 2: 774 write iops (154% HDD)
===   O_SYNC series   ===
1 file, 1 thread, rnd 16k writes, simple, o_sync: 102 write iops (65% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, o_sync: 108 write iops (44% HDD)
16 files, 1 thread each, rnd 16k writes, simple, o_sync: 546 write iops (108% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, o_sync: 665 write iops (130% HDD)
===    read series    ===
1 file, 1 thread, seq 1M reads, simple: 3826 read iops (102% HDD)
1 file, 16 threads, rnd 16k reads, posixaio: 3725 read iops (2178% HDD)
16 files, 1 thread each, seq 1M reads, simple: 5693 read iops (140% HDD)
16 files, 1 thread each, rnd 16k reads, posixaio: 333893 read iops (71041% HDD)
16 files, 16 threads each, rnd 16k reads, posixaio: 672383 read iops (135561% HDD)
=== native aio series ===
1 file, 16 threads, rnd 16k writes, native aio: 192 write iops (31% HDD)
16 files, 16 threads each, rnd 16k writes, native aio: 895 write iops (178% HDD)
1 file, 16 threads, rnd 16k reads, native aio: 3638 read iops (2777% HDD)
16 files, 16 threads each, rnd 16k reads, native aio: 941116 read iops (190509% HDD)
Tests complete on mwanafunzi @ 2019-10-03 17:49:55.
Files remain. To clean up, add argument "cleanup".

BTRFS RAID 1 HDD

Testgroup "current"
===   1 file series   ===
1 file, 1 thread, seq 1M writes, simple: 89 write iops (49% HDD)
1 file, 1 thread, rnd 16k writes, simple: 19 write iops (2% HDD)
1 file, 1 thread, rnd 16k writes, simple, take 2: 17 write iops (2% HDD)
1 file, 16 threads, rnd 4k writes, posixaio: 287 write iops (81% HDD)
1 file, 16 threads, rnd 8k writes, posixaio: 285 write iops (67% HDD)
1 file, 16 threads, rnd 16k writes, posixaio: 254 write iops (56% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, take 2: 257 write iops (50% HDD)
===  16 file series   ===
16 files, 1 thread each, seq 1M writes, simple: 64 write iops (42% HDD)
16 files, 1 thread each, rnd 16k writes, simple: 166 write iops (25% HDD)
16 files, 1 thread each, rnd 16k writes, simple, take 2: 167 write iops (26% HDD)
16 files, 1 thread each, rnd 16k writes, posixaio: 178 write iops (38% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio: 1043 write iops (194% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, take 2: 946 write iops (188% HDD)
===   O_SYNC series   ===
1 file, 1 thread, rnd 16k writes, simple, o_sync: 16 write iops (10% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, o_sync: 19 write iops (7% HDD)
16 files, 1 thread each, rnd 16k writes, simple, o_sync: 158 write iops (31% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, o_sync: 168 write iops (33% HDD)
===    read series    ===
1 file, 1 thread, seq 1M reads, simple: 19 read iops (0% HDD)
1 file, 16 threads, rnd 16k reads, posixaio: 123 read iops (71% HDD)
16 files, 1 thread each, seq 1M reads, simple: 4 read iops (0% HDD)
16 files, 1 thread each, rnd 16k reads, posixaio: 474 read iops (100% HDD)
16 files, 16 threads each, rnd 16k reads, posixaio: 466 read iops (93% HDD)
=== native aio series ===
1 file, 16 threads, rnd 16k writes, native aio: 22 write iops (3% HDD)
16 files, 16 threads each, rnd 16k writes, native aio: 176 write iops (35% HDD)
1 file, 16 threads, rnd 16k reads, native aio: 115 read iops (87% HDD)
16 files, 16 threads each, rnd 16k reads, native aio: 479 read iops (96% HDD)
Tests complete on mwanafunzi @ 2019-10-03 17:47:04.
Files remain. To clean up, add argument "cleanup".

XFS HDD

Testgroup "current"
===   1 file series   ===
1 file, 1 thread, seq 1M writes, simple: 152 write iops (83% HDD)
1 file, 1 thread, rnd 16k writes, simple: 118 write iops (16% HDD)
1 file, 1 thread, rnd 16k writes, simple, take 2: 117 write iops (17% HDD)
1 file, 16 threads, rnd 4k writes, posixaio: 160 write iops (45% HDD)
1 file, 16 threads, rnd 8k writes, posixaio: 159 write iops (37% HDD)
1 file, 16 threads, rnd 16k writes, posixaio: 155 write iops (34% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, take 2: 155 write iops (30% HDD)
===  16 file series   ===
16 files, 1 thread each, seq 1M writes, simple: 117 write iops (78% HDD)
16 files, 1 thread each, rnd 16k writes, simple: 174 write iops (26% HDD)
16 files, 1 thread each, rnd 16k writes, simple, take 2: 171 write iops (27% HDD)
16 files, 1 thread each, rnd 16k writes, posixaio: 111 write iops (23% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio: 212 write iops (39% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, take 2: 205 write iops (40% HDD)
===   O_SYNC series   ===
1 file, 1 thread, rnd 16k writes, simple, o_sync: 30 write iops (19% HDD)
1 file, 16 threads, rnd 16k writes, posixaio, o_sync: 30 write iops (12% HDD)
16 files, 1 thread each, rnd 16k writes, simple, o_sync: 104 write iops (20% HDD)
16 files, 16 threads each, rnd 16k writes, posixaio, o_sync: 108 write iops (21% HDD)
===    read series    ===
1 file, 1 thread, seq 1M reads, simple: 165 read iops (4% HDD)
1 file, 16 threads, rnd 16k reads, posixaio: 136 read iops (79% HDD)
16 files, 1 thread each, seq 1M reads, simple: 132 read iops (3% HDD)
16 files, 1 thread each, rnd 16k reads, posixaio: 284 read iops (60% HDD)
16 files, 16 threads each, rnd 16k reads, posixaio: 316 read iops (63% HDD)
=== native aio series ===
1 file, 16 threads, rnd 16k writes, native aio: 121 write iops (19% HDD)
16 files, 16 threads each, rnd 16k writes, native aio: 192 write iops (38% HDD)
1 file, 16 threads, rnd 16k reads, native aio: 139 read iops (106% HDD)
16 files, 16 threads each, rnd 16k reads, native aio: 300 read iops (60% HDD)