HDD IO Scheduler Tests

Linux 5.0 hard drive I/O scheduler benchmarks for a future article on Phoronix.com.

HTML result view exported from: https://openbenchmarking.org/result/1902248-SP-HDDIOSCHE01&sor&grt.

ProcessorMotherboardChipsetMemoryDiskGraphicsAudioNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionWD5000AZRXWD1500HLHX Mq-Deadline None Kyber BFQ low-latency BFQ Mq-Deadline None Kyber BFQ low-latency BFQAMD Ryzen Threadripper 2990WX 32-Core @ 3.00GHz (32 Cores / 64 Threads)ASUS ROG ZENITH EXTREME (1601 BIOS)AMD Family 17h4 x 8192 MB DDR4-1600MT/s F4-3200C14-8GFX500GB Western Digital WD5000AZRX-0llvmpipeRealtek ALC1220Intel I211 + Qualcomm Atheros QCA6174 802.11ac + Wilocity Wil6200 802.11adUbuntu 18.045.0.0-050000rc6-generic (x86_64) 20190210GNOME Shell 3.28.3X Server 1.19.6modesetting 1.19.63.3 Mesa 18.0.5 (LLVM 6.0 128 bits)GCC 7.3.0ext41280x1024150GB Western Digital WD1500HLHX-0OpenBenchmarking.orgCompiler Details- --build=x86_64-linux-gnu --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --enable-libmpx --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-multiarch --enable-multilib --enable-nls --enable-objc-gc=auto --enable-offload-targets=nvptx-none --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --program-prefix=x86_64-linux-gnu- --target=x86_64-linux-gnu --with-abi=m64 --with-arch-32=i686 --with-default-libstdcxx-abi=new --with-gcc-major-version-only --with-multilib-list=m32,m64,mx32 --with-target-system-zlib --with-tune=generic --without-cuda-driver -v Disk Details- WD5000AZRX: Mq-Deadline: MQ-DEADLINE / relatime,rw- WD5000AZRX: None: NONE / relatime,rw- WD5000AZRX: Kyber: KYBER / relatime,rw- WD5000AZRX: BFQ low-latency: BFQ / relatime,rw- WD5000AZRX: BFQ: BFQ / relatime,rw- WD1500HLHX: Mq-Deadline: MQ-DEADLINE / relatime,rw- WD1500HLHX: None: NONE / relatime,rw- WD1500HLHX: Kyber: KYBER / relatime,rw- WD1500HLHX: BFQ low-latency: BFQ / relatime,rw- WD1500HLHX: BFQ: BFQ / relatime,rwProcessor Details- Scaling Governor: acpi-cpufreq ondemandPython Details- Python 2.7.15rc1 + Python 3.6.7Security Details- __user pointer sanitization + Full AMD retpoline IBPB: conditional STIBP: disabled RSB filling + SSB disabled via prctl and seccomp

startup-time: Only Seq Reads - xterm - Default Test Directorystartup-time: Seq Reads + Writes - xterm - Default Test Directorycompilebench: Compilecompilebench: Initial Createfio: Rand Read - Linux AIO - Yes - No - 2MB - Default Test Directoryfio: Rand Write - Linux AIO - Yes - No - 2MB - Default Test Directoryfio: Seq Read - Linux AIO - Yes - No - 2MB - Default Test Directoryfio: Seq Write - Linux AIO - Yes - No - 2MB - Default Test Directoryfs-mark: 1000 Files, 1MB Sizefs-mark: 5000 Files, 1MB Size, 4 Threadsfs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizegit: Time To Complete Common Git Commandspgbench: Buffer Test - Normal Load - Read Onlypgbench: Buffer Test - Normal Load - Read Writesqlite: Timed SQLite Insertionsbuild-linux-kernel: Time To CompileWD5000AZRXWD1500HLHX Mq-Deadline None Kyber BFQ low-latency BFQ Mq-Deadline None Kyber BFQ low-latency BFQ77.2940.741367499452944655861439320.1346.1317.975.6846062641959237.4866.8740.431340492455145226098450120.2948.8021.035.6945755842650237.4163.4140.041338489464745395984434620.2848.4821.005.8735201142060537.920.640.651347480446845745891450520.4144.4014.875.8044195830351937.528.825.491350477458946396208455320.4247.8721.975.7936086626454837.5620.029.511373504471845176341401832.6063.2933.505.6244066855627837.7320.658.941351494468636986384431732.0863.2030.235.7645344555427137.3421.209.451334496475645136226433731.7462.7130.905.7644701056727437.960.450.481340483506942236361404631.9162.3632.735.6345726144527037.907.276.321338483460545626204451832.0561.3332.075.6337115240228237.55OpenBenchmarking.org

Application Start-up Time

Background I/O Mix: Only Sequential Reads - Application To Start: xterm - Disk Target: Default Test Directory

WD1500HLHXWD5000AZRXOpenBenchmarking.orgsec, Fewer Is BetterApplication Start-up Time 2.4.0Background I/O Mix: Only Sequential Reads - Application To Start: xterm - Disk Target: Default Test DirectoryBFQ low-latencyBFQMq-DeadlineNoneKyber20406080100SE +/- 0.01, N = 3SE +/- 0.63, N = 6SE +/- 0.18, N = 3SE +/- 0.37, N = 9SE +/- 0.13, N = 3SE +/- 0.01, N = 4SE +/- 0.75, N = 9SE +/- 0.51, N = 3SE +/- 1.11, N = 9SE +/- 3.92, N = 60.457.2720.0220.6521.200.648.8263.4166.8777.29

Application Start-up Time

Background I/O Mix: Sequential Reads + Writes - Application To Start: xterm - Disk Target: Default Test Directory

WD1500HLHXWD5000AZRXOpenBenchmarking.orgsec, Fewer Is BetterApplication Start-up Time 2.4.0Background I/O Mix: Sequential Reads + Writes - Application To Start: xterm - Disk Target: Default Test DirectoryBFQ low-latencyBFQNoneKyberMq-Deadline918273645SE +/- 0.02, N = 8SE +/- 0.54, N = 6SE +/- 0.14, N = 3SE +/- 0.15, N = 3SE +/- 0.15, N = 9SE +/- 0.03, N = 8SE +/- 0.36, N = 9SE +/- 0.58, N = 3SE +/- 0.38, N = 3SE +/- 0.22, N = 30.486.328.949.459.510.655.4940.0440.4340.74

Compile Bench

Test: Compile

WD1500HLHXWD5000AZRXOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileMq-DeadlineNoneBFQBFQ low-latencyKyber30060090012001500SE +/- 7.11, N = 3SE +/- 10.84, N = 3SE +/- 19.69, N = 3SE +/- 12.62, N = 3SE +/- 9.20, N = 3SE +/- 10.97, N = 3SE +/- 8.13, N = 3SE +/- 15.90, N = 9SE +/- 25.86, N = 3SE +/- 9.35, N = 31373135113401338133413671350134713401338

Compile Bench

Test: Initial Create

WD1500HLHXWD5000AZRXOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateMq-DeadlineKyberNoneBFQBFQ low-latency110220330440550SE +/- 3.61, N = 3SE +/- 9.70, N = 3SE +/- 9.86, N = 3SE +/- 3.18, N = 3SE +/- 0.92, N = 3SE +/- 1.61, N = 3SE +/- 15.77, N = 3SE +/- 10.73, N = 3SE +/- 11.83, N = 3SE +/- 5.77, N = 3504496494483483499492489480477

Flexible IO Tester

Type: Random Read - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test Directory

WD1500HLHXWD5000AZRXOpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.1Type: Random Read - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test DirectoryBFQ low-latencyKyberMq-DeadlineNoneBFQ11002200330044005500SE +/- 58.50, N = 3SE +/- 51.94, N = 3SE +/- 60.58, N = 3SE +/- 25.77, N = 3SE +/- 19.65, N = 3SE +/- 61.63, N = 6SE +/- 49.68, N = 12SE +/- 70.28, N = 4SE +/- 50.23, N = 3SE +/- 13.58, N = 350694756471846864605464745894551452944681. (CC) gcc options: -rdynamic -std=gnu99 -ffast-math -include -O3 -U_FORTIFY_SOURCE -ll -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

Type: Random Write - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test Directory

WD5000AZRXWD1500HLHXOpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.1Type: Random Write - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test DirectoryBFQBFQ low-latencyKyberNoneMq-Deadline10002000300040005000SE +/- 65.44, N = 6SE +/- 82.74, N = 3SE +/- 120.82, N = 12SE +/- 50.29, N = 12SE +/- 88.93, N = 12SE +/- 62.79, N = 5SE +/- 50.38, N = 9SE +/- 62.19, N = 10SE +/- 28.54, N = 3SE +/- 63.65, N = 346394574453945224465456245174513422336981. (CC) gcc options: -rdynamic -std=gnu99 -ffast-math -include -O3 -U_FORTIFY_SOURCE -ll -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

Type: Sequential Read - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test Directory

WD1500HLHXWD5000AZRXOpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.1Type: Sequential Read - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test DirectoryNoneBFQ low-latencyMq-DeadlineKyberBFQ14002800420056007000SE +/- 68.36, N = 10SE +/- 51.84, N = 3SE +/- 193.87, N = 10SE +/- 159.17, N = 11SE +/- 152.49, N = 11SE +/- 30.68, N = 3SE +/- 71.65, N = 12SE +/- 149.48, N = 12SE +/- 111.27, N = 3SE +/- 99.23, N = 463846361634162266204620860985984589158611. (CC) gcc options: -rdynamic -std=gnu99 -ffast-math -include -O3 -U_FORTIFY_SOURCE -ll -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

Type: Sequential Write - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test Directory

WD5000AZRXWD1500HLHXOpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 3.1Type: Sequential Write - IO Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 2MB - Disk Target: Default Test DirectoryBFQBFQ low-latencyNoneMq-DeadlineKyber10002000300040005000SE +/- 147.92, N = 11SE +/- 142.97, N = 11SE +/- 226.25, N = 10SE +/- 206.32, N = 10SE +/- 194.69, N = 10SE +/- 105.44, N = 11SE +/- 214.01, N = 10SE +/- 239.29, N = 10SE +/- 299.47, N = 9SE +/- 376.24, N = 1045534505450143934346451843374317404640181. (CC) gcc options: -rdynamic -std=gnu99 -ffast-math -include -O3 -U_FORTIFY_SOURCE -ll -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

FS-Mark

Test: 1000 Files, 1MB Size

WD1500HLHXWD5000AZRXOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeMq-DeadlineNoneBFQBFQ low-latencyKyber816243240SE +/- 0.41, N = 7SE +/- 0.74, N = 10SE +/- 0.66, N = 11SE +/- 0.60, N = 12SE +/- 0.73, N = 10SE +/- 0.24, N = 12SE +/- 0.22, N = 12SE +/- 0.32, N = 12SE +/- 0.34, N = 12SE +/- 0.55, N = 1132.6032.0832.0531.9131.7420.4220.4120.2920.2820.131. (CC) gcc options: -static

FS-Mark

Test: 5000 Files, 1MB Size, 4 Threads

WD1500HLHXWD5000AZRXOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 5000 Files, 1MB Size, 4 ThreadsMq-DeadlineNoneKyberBFQ low-latencyBFQ1428425670SE +/- 1.39, N = 9SE +/- 1.47, N = 9SE +/- 1.35, N = 9SE +/- 1.13, N = 9SE +/- 1.58, N = 6SE +/- 0.40, N = 3SE +/- 0.73, N = 5SE +/- 0.87, N = 3SE +/- 1.33, N = 6SE +/- 1.46, N = 963.2963.2062.7162.3661.3348.8048.4847.8746.1344.401. (CC) gcc options: -static

FS-Mark

Test: 4000 Files, 32 Sub Dirs, 1MB Size

WD1500HLHXWD5000AZRXOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeMq-DeadlineBFQ low-latencyBFQKyberNone816243240SE +/- 0.26, N = 3SE +/- 0.35, N = 3SE +/- 0.48, N = 3SE +/- 0.10, N = 3SE +/- 0.24, N = 3SE +/- 0.35, N = 3SE +/- 0.12, N = 3SE +/- 0.12, N = 3SE +/- 0.03, N = 3SE +/- 0.26, N = 933.5032.7332.0730.9030.2321.9721.0321.0017.9714.871. (CC) gcc options: -static

Git

Time To Complete Common Git Commands

WD1500HLHXWD5000AZRXOpenBenchmarking.orgSeconds, Fewer Is BetterGitTime To Complete Common Git CommandsMq-DeadlineBFQ low-latencyBFQNoneKyber1.32082.64163.96245.28326.604SE +/- 0.02, N = 3SE +/- 0.03, N = 3SE +/- 0.08, N = 12SE +/- 0.01, N = 3SE +/- 0.01, N = 3SE +/- 0.12, N = 12SE +/- 0.09, N = 12SE +/- 0.01, N = 3SE +/- 0.06, N = 12SE +/- 0.10, N = 125.625.635.635.765.765.685.695.795.805.871. git version 2.17.1

PostgreSQL pgbench

Scaling: Buffer Test - Test: Normal Load - Mode: Read Only

WD5000AZRXWD1500HLHXOpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 10.3Scaling: Buffer Test - Test: Normal Load - Mode: Read OnlyMq-DeadlineNoneBFQ low-latencyKyberBFQ100K200K300K400K500KSE +/- 10455.88, N = 9SE +/- 10205.93, N = 9SE +/- 11075.42, N = 12SE +/- 72738.00, N = 6SE +/- 88821.64, N = 5SE +/- 11557.12, N = 9SE +/- 8325.40, N = 12SE +/- 2117.36, N = 3SE +/- 11338.07, N = 9SE +/- 75474.28, N = 64606264575584419583608663520114572614534454470104406683711521. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

PostgreSQL pgbench

Scaling: Buffer Test - Test: Normal Load - Mode: Read Write

WD1500HLHXWD5000AZRXOpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 10.3Scaling: Buffer Test - Test: Normal Load - Mode: Read WriteKyberMq-DeadlineNoneBFQ low-latencyBFQ120240360480600SE +/- 8.29, N = 12SE +/- 8.19, N = 12SE +/- 7.99, N = 12SE +/- 10.31, N = 12SE +/- 6.77, N = 12SE +/- 8.49, N = 9SE +/- 14.42, N = 9SE +/- 16.28, N = 9SE +/- 5.92, N = 10SE +/- 4.15, N = 125675565544454024264204193032641. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

SQLite

Timed SQLite Insertions

WD1500HLHXWD5000AZRXOpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.22Timed SQLite InsertionsBFQ low-latencyNoneKyberMq-DeadlineBFQ130260390520650SE +/- 2.86, N = 3SE +/- 3.40, N = 9SE +/- 3.64, N = 9SE +/- 7.10, N = 9SE +/- 4.35, N = 9SE +/- 7.65, N = 9SE +/- 7.84, N = 9SE +/- 5.91, N = 3SE +/- 79.38, N = 8SE +/- 69.79, N = 92702712742782825025195485926051. (CC) gcc options: -O2 -lz -ldl -lpthread

Timed Linux Kernel Compilation

Time To Compile

WD1500HLHXWD5000AZRXOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 4.18Time To CompileNoneMq-DeadlineBFQ low-latencyBFQKyber918273645SE +/- 0.53, N = 5SE +/- 0.53, N = 6SE +/- 0.64, N = 4SE +/- 0.59, N = 5SE +/- 0.59, N = 5SE +/- 0.54, N = 5SE +/- 0.53, N = 6SE +/- 0.46, N = 7SE +/- 0.51, N = 6SE +/- 0.50, N = 637.3437.5537.7337.9037.9637.4137.4837.5237.5637.92


Phoronix Test Suite v10.8.4