Linux 4.12 I/O Scheduler Kyper BFQ CFQ None mq-deadline Tests

Linux 4.12 kernel none, mq-deadline, Kyber, BFQ I/O scheduler tests along with CFQ, Noop, and deadline on a SATA 3.0 Samsung SSD for reference. Tests by Michael Larabel for a future article.

HTML result view exported from: https://openbenchmarking.org/result/1705082-TR-IOSCHED2579.

Linux 4.12 I/O Scheduler Kyper BFQ CFQ None mq-deadline TestsProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLVulkanCompilerFile-SystemScreen ResolutionCFQNoopDeadlinemq-deadlineKyberBFQNoneIntel Core i7-6800K @ 3.80GHz (12 Cores)MSI X99A WORKSTATION (MS-7A54) v1.0Intel Xeon E7 v4/Xeon16384MB120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150NVIDIA GeForce GTX TITAN X 12288MBRealtek ALC1150ASUS PB278Intel ConnectionUbuntu 17.044.11.0+ (x86_64)Unity 7.5.0X Server 1.19.3nouveau 1.0.144.3 Mesa 17.0.3 Gallium 0.41.0.42GCC 6.3.0 20170406 + Clang 4.0.0-1ubuntu1ext42560x1440OpenBenchmarking.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 Disk Details- CFQ: CFQ / data=ordered,errors=remount-ro,relatime,rw- Noop: NOOP / data=ordered,errors=remount-ro,relatime,rw- Deadline: DEADLINE / data=ordered,errors=remount-ro,relatime,rw- mq-deadline: MQ-DEADLINE / data=ordered,errors=remount-ro,relatime,rw- Kyber: KYBER / data=ordered,errors=remount-ro,relatime,rw- BFQ: BFQ / data=ordered,errors=remount-ro,relatime,rw- None: NONE / data=ordered,errors=remount-ro,relatime,rwProcessor Details- Scaling Governor: intel_pstate powersaveSystem Details- Python 2.7.13.

Linux 4.12 I/O Scheduler Kyper BFQ CFQ None mq-deadline 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: SETapache: Static Web Page ServingCFQNoopDeadlinemq-deadlineKyberBFQNone25.07344.29423.42108.80115.2073.28573656.64141.47149.9610.29501.648.5026.3195.552077.852554110.081776776.5039155.9224.01344.57419.25112.58114.1370.52491953.64125.90141.9730.97435.788.6726.3095.471739.082356649.421824142.7939201.3424.45344.42418.67110.87110.4769.25481053.05148.82135.9110.19429.518.5026.2295.591721.322371668.331795531.7539082.5425.11342.22342.19111.27107.7374.35644153.31141.61136.8411.45493.608.7826.1994.401555.352316374.581811693.3739087.9825.79342.26342.47111.17110.2769.30627753.11140.54152.9811.62434.908.6326.1994.721473.242340354.671838387.5039443.9333.58341.78341.6893.4095.2063.07616040.8546.28150.063.03457.558.6126.2794.851118.302390633.831859203.7139197.6425.28342.75342.77111.33100.4065.63630453.86142.12144.2811.80439.948.6426.2894.511322.402311959.421815065.8339419.51OpenBenchmarking.org

SQLite

Test Target: Default Test Directory

OpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryCFQNoopDeadlinemq-deadlineKyberBFQNone816243240SE +/- 0.33, N = 3SE +/- 0.18, N = 3SE +/- 0.26, N = 3SE +/- 0.42, N = 3SE +/- 0.20, N = 3SE +/- 0.09, N = 3SE +/- 0.37, N = 325.0724.0124.4525.1125.7933.5825.281. (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 DirectoryCFQNoopDeadlinemq-deadlineKyberBFQNone70140210280350SE +/- 0.06, N = 3SE +/- 0.02, N = 3SE +/- 0.04, N = 3SE +/- 0.06, N = 3SE +/- 0.07, N = 3SE +/- 0.51, N = 3SE +/- 0.25, N = 3344.29344.57344.42342.22342.26341.78342.751. (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 DirectoryCFQNoopDeadlinemq-deadlineKyberBFQNone20K40K60K80K100KSE +/- 14.95, N = 3SE +/- 5.36, N = 3SE +/- 10.33, N = 3SE +/- 14.05, N = 3SE +/- 16.70, N = 3SE +/- 126.64, N = 3SE +/- 61.98, N = 3860688614086100855528556285440856841. (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 DirectoryCFQNoopDeadlinemq-deadlineKyberBFQNone90180270360450SE +/- 4.47, N = 3SE +/- 0.62, N = 3SE +/- 0.19, N = 3SE +/- 0.01, N = 3SE +/- 0.06, N = 3SE +/- 0.59, N = 3SE +/- 0.11, N = 3423.42419.25418.67342.19342.47341.68342.771. (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 DirectoryCFQNoopDeadlinemq-deadlineKyberBFQNone20K40K60K80K100KSE +/- 1118.58, N = 3SE +/- 154.16, N = 3SE +/- 46.27, N = 3SE +/- 2.96, N = 3SE +/- 15.63, N = 3SE +/- 146.66, N = 3SE +/- 26.34, N = 3105851104810104663855438561385416856891. (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 SizeCFQNoopDeadlinemq-deadlineKyberBFQNone306090120150SE +/- 19.32, N = 6SE +/- 21.06, N = 6SE +/- 21.09, N = 6SE +/- 20.83, N = 6SE +/- 20.11, N = 6SE +/- 11.85, N = 6SE +/- 21.40, N = 6108.80112.58110.87111.27111.1793.40111.331. (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 ThreadsCFQNoopDeadlinemq-deadlineKyberBFQNone306090120150SE +/- 1.40, N = 3SE +/- 1.33, N = 3SE +/- 3.10, N = 6SE +/- 4.17, N = 6SE +/- 4.41, N = 6SE +/- 7.52, N = 6SE +/- 5.62, N = 6115.20114.13110.47107.73110.2795.20100.401. (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 SizeCFQNoopDeadlinemq-deadlineKyberBFQNone20406080100SE +/- 1.91, N = 6SE +/- 3.18, N = 6SE +/- 2.94, N = 6SE +/- 1.55, N = 6SE +/- 3.08, N = 6SE +/- 4.22, N = 6SE +/- 6.31, N = 673.2870.5269.2574.3569.3063.0765.631. (CC) gcc options: -static

BlogBench

Test: Write

OpenBenchmarking.orgFinal Score, More Is BetterBlogBench 1.0Test: WriteCFQNoopDeadlinemq-deadlineKyberBFQNone14002800420056007000SE +/- 40.99, N = 3SE +/- 271.32, N = 6SE +/- 201.64, N = 6SE +/- 31.62, N = 3SE +/- 38.48, N = 3SE +/- 21.09, N = 3SE +/- 9.07, N = 357364919481064416277616063041. (CC) gcc options: -O2 -pthread

Dbench

Client Count: 1

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 1CFQNoopDeadlinemq-deadlineKyberBFQNone1326395265SE +/- 0.09, N = 3SE +/- 0.23, N = 3SE +/- 0.20, N = 3SE +/- 0.08, N = 3SE +/- 0.13, N = 3SE +/- 0.09, N = 3SE +/- 0.24, N = 356.6453.6453.0553.3153.1140.8553.861. (CC) gcc options: -lpopt -O2

Dbench

Client Count: 6

OpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 6CFQNoopDeadlinemq-deadlineKyberBFQNone306090120150SE +/- 0.42, N = 3SE +/- 0.68, N = 3SE +/- 0.19, N = 3SE +/- 0.13, N = 3SE +/- 0.72, N = 3SE +/- 0.20, N = 3SE +/- 0.06, N = 3141.47125.90148.82141.61140.5446.28142.121. (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 PerformanceCFQNoopDeadlinemq-deadlineKyberBFQNone306090120150SE +/- 5.51, N = 6SE +/- 12.91, N = 6SE +/- 10.56, N = 6SE +/- 6.45, N = 6SE +/- 2.88, N = 3SE +/- 2.23, N = 3SE +/- 5.54, N = 6149.96141.97135.91136.84152.98150.06144.281. (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: 4CFQNoopDeadlinemq-deadlineKyberBFQNone714212835SE +/- 0.02, N = 3SE +/- 18.44, N = 6SE +/- 0.11, N = 3SE +/- 0.21, N = 6SE +/- 0.31, N = 6SE +/- 0.01, N = 3SE +/- 0.16, N = 610.2930.9710.1911.4511.623.0311.801. (CC) gcc options: -O2

Compile Bench

Test: Initial Create

OpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateCFQNoopDeadlinemq-deadlineKyberBFQNone110220330440550SE +/- 9.72, N = 3SE +/- 8.17, N = 3SE +/- 6.28, N = 3SE +/- 6.24, N = 3SE +/- 14.22, N = 6SE +/- 13.71, N = 6SE +/- 12.21, N = 6501.64435.78429.51493.60434.90457.55439.94

Unpacking The Linux Kernel

linux-2.6.32.tar.bz2

OpenBenchmarking.orgSeconds, Fewer Is BetterUnpacking The Linux Kernellinux-2.6.32.tar.bz2CFQNoopDeadlinemq-deadlineKyberBFQNone246810SE +/- 0.04, N = 4SE +/- 0.10, N = 4SE +/- 0.06, N = 4SE +/- 0.14, N = 4SE +/- 0.11, N = 4SE +/- 0.06, N = 4SE +/- 0.11, N = 48.508.678.508.788.638.618.64

Timed Apache Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed Apache Compilation 2.4.7Time To CompileCFQNoopDeadlinemq-deadlineKyberBFQNone612182430SE +/- 0.05, N = 3SE +/- 0.04, N = 3SE +/- 0.07, N = 3SE +/- 0.03, N = 3SE +/- 0.07, N = 3SE +/- 0.07, N = 3SE +/- 0.06, N = 326.3126.3026.2226.1926.1926.2726.28

Timed Linux Kernel Compilation

Time To Compile

OpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 4.9Time To CompileCFQNoopDeadlinemq-deadlineKyberBFQNone20406080100SE +/- 0.97, N = 3SE +/- 0.86, N = 3SE +/- 1.10, N = 3SE +/- 1.23, N = 3SE +/- 0.68, N = 3SE +/- 1.00, N = 3SE +/- 1.12, N = 395.5595.4795.5994.4094.7294.8594.51

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 WriteCFQNoopDeadlinemq-deadlineKyberBFQNone4008001200160020002077.851739.081721.321555.351473.241118.301322.401. (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: GETCFQNoopDeadlinemq-deadlineKyberBFQNone500K1000K1500K2000K2500KSE +/- 34341.97, N = 3SE +/- 3708.42, N = 3SE +/- 12235.74, N = 3SE +/- 42115.92, N = 3SE +/- 17540.46, N = 3SE +/- 15336.83, N = 3SE +/- 28854.42, N = 32554110.082356649.422371668.332316374.582340354.672390633.832311959.421. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl

Redis

Test: SET

OpenBenchmarking.orgRequests Per Second, More Is BetterRedis 3.0.1Test: SETCFQNoopDeadlinemq-deadlineKyberBFQNone400K800K1200K1600K2000KSE +/- 28375.23, N = 4SE +/- 19830.32, N = 3SE +/- 13355.04, N = 3SE +/- 9474.84, N = 3SE +/- 11794.22, N = 3SE +/- 20968.46, N = 3SE +/- 34392.71, N = 31776776.501824142.791795531.751811693.371838387.501859203.711815065.831. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl

Apache Benchmark

Static Web Page Serving

OpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.4.7Static Web Page ServingCFQNoopDeadlinemq-deadlineKyberBFQNone8K16K24K32K40KSE +/- 122.55, N = 3SE +/- 225.47, N = 3SE +/- 185.12, N = 3SE +/- 379.50, N = 3SE +/- 67.84, N = 3SE +/- 323.64, N = 3SE +/- 175.26, N = 339155.9239201.3439082.5439087.9839443.9339197.6439419.511. (CC) gcc options: -shared -fPIC -O2 -pthread


Phoronix Test Suite v10.8.4