Linux 4.12 I/O Scheduler Tests

Linux 4.12 kernel none, mq-deadline, Kyber, BFQ I/O scheduler tests on an NVMe SSD for reference. Tests by Michael Larabel for a future article.

HTML result view exported from: https://openbenchmarking.org/result/1705059-PTS-LINUX41249.

Linux 4.12 I/O Scheduler TestsProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionNonemq-deadlineKyberBFQIntel Xeon E3-1280 v5 @ 4.00GHz (8 Cores)MSI C236A WORKSTATION (MS-7998) v1.0Intel Skylake16384MB256GB TOSHIBA-RD400Sapphire AMD Radeon RX 470/480 4096MBRealtek ALC1150DELL P2415QIntel ConnectionUbuntu 17.044.11.0+ (x86_64)Unity 7.5.0X Server 1.19.3modesetting 1.19.34.5 Mesa 17.0.3 Gallium 0.4 (LLVM 4.0.0)GCC 6.3.0 20170406ext43840x2160OpenBenchmarking.orgCompiler Details- --build=x86_64-linux-gnu --disable-browser-plugin --disable-vtable-verify --disable-werror --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-gnu-unique-object --enable-gtk-cairo --enable-java-awt=gtk --enable-java-home --enable-languages=c,ada,c++,java,go,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-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-arch-directory=amd64 --with-default-libstdcxx-abi=new --with-multilib-list=m32,m64,mx32 --with-target-system-zlib --with-tune=generic -v Processor Details- Scaling Governor: intel_pstate powersaveSystem Details- Python 2.7.13.Disk Mount Options Details- data=ordered,errors=remount-ro,relatime,rw

Linux 4.12 I/O Scheduler Testssqlite: Default Test Directoryfio: Rand Write - Libaio - No - Yes - 4KB - Default Test Directoryfio: Seq Write - Libaio - No - Yes - 4KB - Default Test Directoryfs-mark: 1000 Files, 1MB Sizefs-mark: 5000 Files, 1MB Size, 4 Threadsfs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizeblogbench: Writedbench: 1dbench: 6iozone: 4Kb - 8GB - Write Performancetiobench: Rand Write - 32MB - 4compilebench: Initial Createunpack-linux: linux-2.6.32.tar.bz2build-apache: Time To Compilebuild-linux-kernel: Time To Compilepgbench: On-Disk - Normal Load - Read Writeredis: GETredis: SETmcperf: Getmcperf: Setapache: Static Web Page ServingNonemq-deadlineKyberBFQ71.03575.69783.8896.17153.3388.303425666.86218.80808.7412.84577.347.6125.53123.201588.7431155082037914.87159058.0392322.4043561.7782.56454.76735.5283.5386.5760.001161664.07200.70317.5313.53570.007.5625.65123.001546.362868074.082052248.83157527.2391452.1743947.4985.96435.18720.1172.6784.8060.43800062.29198.66667.3812.74565.947.5825.49123.132830851.832078919.21156387.2092470.6743327.45124.90438.34730.7957.0088.6745.40918135.2047.95564.103.37545.517.5325.56122.662851855.002122055.13155304.7091694.3043467.39OpenBenchmarking.org

SQLite

Test Target: Default Test Directory

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryNonemq-deadlineKyberBFQ306090120150SE +/- 0.05, N = 3SE +/- 0.64, N = 3SE +/- 0.26, N = 3SE +/- 1.37, N = 371.0382.5685.96124.901. (CC) gcc options: -O2 -ldl -lpthread

Flexible IO Tester

Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 2.1.13Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryNonemq-deadlineKyberBFQ120240360480600SE +/- 4.37, N = 3SE +/- 8.06, N = 6SE +/- 12.53, N = 6SE +/- 7.08, N = 3575.69454.76435.18438.341. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryNonemq-deadlineKyberBFQ30K60K90K120K150KSE +/- 1091.86, N = 3SE +/- 2015.86, N = 6SE +/- 3131.80, N = 6SE +/- 1769.03, N = 31439181136871087911095811. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 2.1.13Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryNonemq-deadlineKyberBFQ2004006008001000SE +/- 2.52, N = 3SE +/- 13.03, N = 3SE +/- 10.90, N = 3SE +/- 3.83, N = 3783.88735.52720.11730.791. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory

OpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryNonemq-deadlineKyberBFQ40K80K120K160K200KSE +/- 630.42, N = 3SE +/- 3256.36, N = 3SE +/- 2723.97, N = 3SE +/- 957.83, N = 31959671838761800241826931. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lz -lm -lpthread -ldl

FS-Mark

Test: 1000 Files, 1MB Size

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeNonemq-deadlineKyberBFQ20406080100SE +/- 1.76, N = 6SE +/- 3.33, N = 6SE +/- 4.96, N = 6SE +/- 5.06, N = 696.1783.5372.6757.001. (CC) gcc options: -static

FS-Mark

Test: 5000 Files, 1MB Size, 4 Threads

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 5000 Files, 1MB Size, 4 ThreadsNonemq-deadlineKyberBFQ306090120150SE +/- 1.62, N = 3SE +/- 0.84, N = 3SE +/- 1.62, N = 3SE +/- 1.04, N = 3153.3386.5784.8088.671. (CC) gcc options: -static

FS-Mark

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

OpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeNonemq-deadlineKyberBFQ20406080100SE +/- 0.38, N = 3SE +/- 0.29, N = 3SE +/- 0.55, N = 3SE +/- 0.55, N = 388.3060.0060.4345.401. (CC) gcc options: -static

BlogBench

Test: Write

OpenBenchmarking.orgFinal Score, More Is BetterBlogBench 1.0Test: WriteNonemq-deadlineKyberBFQ7K14K21K28K35KSE +/- 178.87, N = 3SE +/- 79.37, N = 3SE +/- 34.60, N = 3SE +/- 672.41, N = 63425611616800091811. (CC) gcc options: -O2 -pthread

Dbench

Client Count: 1

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 1Nonemq-deadlineKyberBFQ1530456075SE +/- 0.11, N = 3SE +/- 0.56, N = 3SE +/- 0.27, N = 3SE +/- 0.70, N = 366.8664.0762.2935.201. (CC) gcc options: -lpopt -O2

Dbench

Client Count: 6

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 6Nonemq-deadlineKyberBFQ50100150200250SE +/- 0.35, N = 3SE +/- 1.00, N = 3SE +/- 0.88, N = 3SE +/- 0.15, N = 3218.80200.70198.6647.951. (CC) gcc options: -lpopt -O2

IOzone

Record Size: 4Kb - File Size: 8GB - Disk Test: Write Performance

OpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 8GB - Disk Test: Write PerformanceNonemq-deadlineKyberBFQ2004006008001000SE +/- 23.36, N = 6SE +/- 27.80, N = 6SE +/- 108.75, N = 6SE +/- 62.73, N = 6808.74317.53667.38564.101. (CC) gcc options: -O3

Threaded I/O Tester

Test: Random Write - Size Per Thread: 32MB - Thread Count: 4

OpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 20170503Test: Random Write - Size Per Thread: 32MB - Thread Count: 4Nonemq-deadlineKyberBFQ3691215SE +/- 0.61, N = 6SE +/- 0.65, N = 6SE +/- 0.21, N = 4SE +/- 0.05, N = 312.8413.5312.743.371. (CC) gcc options: -O2

Compile Bench

Test: Initial Create

OpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateNonemq-deadlineKyberBFQ120240360480600SE +/- 8.74, N = 3SE +/- 2.93, N = 3SE +/- 7.65, N = 3SE +/- 4.24, N = 3577.34570.00565.94545.51

Unpacking The Linux Kernel

linux-2.6.32.tar.bz2

OpenBenchmarking.orgSeconds, Fewer Is BetterUnpacking The Linux Kernellinux-2.6.32.tar.bz2Nonemq-deadlineKyberBFQ246810SE +/- 0.13, N = 4SE +/- 0.13, N = 4SE +/- 0.12, N = 4SE +/- 0.12, N = 47.617.567.587.53

Timed Apache Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed Apache Compilation 2.4.7Time To CompileNonemq-deadlineKyberBFQ612182430SE +/- 0.08, N = 3SE +/- 0.15, N = 3SE +/- 0.04, N = 3SE +/- 0.05, N = 325.5325.6525.4925.56

Timed Linux Kernel Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 4.9Time To CompileNonemq-deadlineKyberBFQ306090120150SE +/- 0.63, N = 3SE +/- 1.05, N = 3SE +/- 0.56, N = 3SE +/- 0.89, N = 3123.20123.00123.13122.66

PostgreSQL pgbench

Scaling: On-Disk - Test: Normal Load - Mode: Read Write

OpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.4.3Scaling: On-Disk - Test: Normal Load - Mode: Read WriteNonemq-deadline30060090012001500SE +/- 69.20, N = 6SE +/- 56.95, N = 61588.741546.361. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm

Redis

Test: GET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: GETNonemq-deadlineKyberBFQ700K1400K2100K2800K3500KSE +/- 19533.00, N = 3SE +/- 2744.58, N = 3SE +/- 30476.18, N = 3SE +/- 14306.23, N = 33115508.002868074.082830851.832851855.001. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl -std=gnu99 -pipe -g3 -O3 -funroll-loops

Redis

Test: SET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: SETNonemq-deadlineKyberBFQ500K1000K1500K2000K2500KSE +/- 36062.25, N = 3SE +/- 16446.10, N = 3SE +/- 28828.13, N = 6SE +/- 20926.63, N = 32037914.872052248.832078919.212122055.131. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl -std=gnu99 -pipe -g3 -O3 -funroll-loops

Memcached 1.3.34 mcperf

Method: Get

OpenBenchmarking.orgOperations Per Second, More Is BetterMemcached 1.3.34 mcperf 0.1.1Method: GetNonemq-deadlineKyberBFQ30K60K90K120K150KSE +/- 2191.38, N = 3SE +/- 776.59, N = 3SE +/- 3134.78, N = 3SE +/- 1414.65, N = 3159058.03157527.23156387.20155304.701. (CC) gcc options: -O2 -lm -rdynamic

Memcached 1.3.34 mcperf

Method: Set

OpenBenchmarking.orgOperations Per Second, More Is BetterMemcached 1.3.34 mcperf 0.1.1Method: SetNonemq-deadlineKyberBFQ20K40K60K80K100KSE +/- 243.59, N = 3SE +/- 226.97, N = 3SE +/- 244.78, N = 3SE +/- 297.18, N = 392322.4091452.1792470.6791694.301. (CC) gcc options: -O2 -lm -rdynamic

Apache Benchmark

Static Web Page Serving

OpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.4.7Static Web Page ServingNonemq-deadlineKyberBFQ9K18K27K36K45KSE +/- 354.79, N = 3SE +/- 69.60, N = 3SE +/- 41.02, N = 3SE +/- 113.93, N = 343561.7743947.4943327.4543467.391. (CC) gcc options: -shared -fPIC -O2 -pthread


Phoronix Test Suite v10.8.4