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 Tests Processor Motherboard Chipset Memory Disk Graphics Audio Monitor Network OS Kernel Desktop Display Server Display Driver OpenGL Vulkan Compiler File-System Screen Resolution CFQ Noop Deadline mq-deadline Kyber BFQ None Intel Core i7-6800K @ 3.80GHz (12 Cores) MSI X99A WORKSTATION (MS-7A54) v1.0 Intel Xeon E7 v4/Xeon 16384MB 120GB Samsung SSD 850 + 4 x 120GB TOSHIBA-TR150 NVIDIA GeForce GTX TITAN X 12288MB Realtek ALC1150 ASUS PB278 Intel Connection Ubuntu 17.04 4.11.0+ (x86_64) Unity 7.5.0 X Server 1.19.3 nouveau 1.0.14 4.3 Mesa 17.0.3 Gallium 0.4 1.0.42 GCC 6.3.0 20170406 + Clang 4.0.0-1ubuntu1 ext4 2560x1440 OpenBenchmarking.org Compiler 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,rw Processor Details - Scaling Governor: intel_pstate powersave System Details - Python 2.7.13.
Linux 4.12 I/O Scheduler Kyper BFQ CFQ None mq-deadline Tests sqlite: Default Test Directory fio: Rand Write - Libaio - No - Yes - 4KB - Default Test Directory fio: Seq Write - Libaio - No - Yes - 4KB - Default Test Directory fs-mark: 1000 Files, 1MB Size fs-mark: 5000 Files, 1MB Size, 4 Threads fs-mark: 4000 Files, 32 Sub Dirs, 1MB Size blogbench: Write dbench: 1 dbench: 6 iozone: 4Kb - 8GB - Write Performance tiobench: Rand Write - 32MB - 4 compilebench: Initial Create unpack-linux: linux-2.6.32.tar.bz2 build-apache: Time To Compile build-linux-kernel: Time To Compile pgbench: On-Disk - Normal Load - Read Write redis: GET redis: SET apache: Static Web Page Serving CFQ Noop Deadline mq-deadline Kyber BFQ None 25.07 344.29 423.42 108.80 115.20 73.28 5736 56.64 141.47 149.96 10.29 501.64 8.50 26.31 95.55 2077.85 2554110.08 1776776.50 39155.92 24.01 344.57 419.25 112.58 114.13 70.52 4919 53.64 125.90 141.97 30.97 435.78 8.67 26.30 95.47 1739.08 2356649.42 1824142.79 39201.34 24.45 344.42 418.67 110.87 110.47 69.25 4810 53.05 148.82 135.91 10.19 429.51 8.50 26.22 95.59 1721.32 2371668.33 1795531.75 39082.54 25.11 342.22 342.19 111.27 107.73 74.35 6441 53.31 141.61 136.84 11.45 493.60 8.78 26.19 94.40 1555.35 2316374.58 1811693.37 39087.98 25.79 342.26 342.47 111.17 110.27 69.30 6277 53.11 140.54 152.98 11.62 434.90 8.63 26.19 94.72 1473.24 2340354.67 1838387.50 39443.93 33.58 341.78 341.68 93.40 95.20 63.07 6160 40.85 46.28 150.06 3.03 457.55 8.61 26.27 94.85 1118.30 2390633.83 1859203.71 39197.64 25.28 342.75 342.77 111.33 100.40 65.63 6304 53.86 142.12 144.28 11.80 439.94 8.64 26.28 94.51 1322.40 2311959.42 1815065.83 39419.51 OpenBenchmarking.org
SQLite Test Target: Default Test Directory OpenBenchmarking.org Seconds, Fewer Is Better SQLite 3.8.10.2 Test Target: Default Test Directory CFQ Noop Deadline mq-deadline Kyber BFQ None 8 16 24 32 40 SE +/- 0.33, N = 3 SE +/- 0.18, N = 3 SE +/- 0.26, N = 3 SE +/- 0.42, N = 3 SE +/- 0.20, N = 3 SE +/- 0.09, N = 3 SE +/- 0.37, N = 3 25.07 24.01 24.45 25.11 25.79 33.58 25.28 1. (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.org MB/s, More Is Better Flexible IO Tester 2.1.13 Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory CFQ Noop Deadline mq-deadline Kyber BFQ None 70 140 210 280 350 SE +/- 0.06, N = 3 SE +/- 0.02, N = 3 SE +/- 0.04, N = 3 SE +/- 0.06, N = 3 SE +/- 0.07, N = 3 SE +/- 0.51, N = 3 SE +/- 0.25, N = 3 344.29 344.57 344.42 342.22 342.26 341.78 342.75 1. (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.org IOPS, More Is Better Flexible IO Tester 2.1.13 Type: Random Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory CFQ Noop Deadline mq-deadline Kyber BFQ None 20K 40K 60K 80K 100K SE +/- 14.95, N = 3 SE +/- 5.36, N = 3 SE +/- 10.33, N = 3 SE +/- 14.05, N = 3 SE +/- 16.70, N = 3 SE +/- 126.64, N = 3 SE +/- 61.98, N = 3 86068 86140 86100 85552 85562 85440 85684 1. (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.org MB/s, More Is Better Flexible IO Tester 2.1.13 Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory CFQ Noop Deadline mq-deadline Kyber BFQ None 90 180 270 360 450 SE +/- 4.47, N = 3 SE +/- 0.62, N = 3 SE +/- 0.19, N = 3 SE +/- 0.01, N = 3 SE +/- 0.06, N = 3 SE +/- 0.59, N = 3 SE +/- 0.11, N = 3 423.42 419.25 418.67 342.19 342.47 341.68 342.77 1. (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.org IOPS, More Is Better Flexible IO Tester 2.1.13 Type: Sequential Write - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test Directory CFQ Noop Deadline mq-deadline Kyber BFQ None 20K 40K 60K 80K 100K SE +/- 1118.58, N = 3 SE +/- 154.16, N = 3 SE +/- 46.27, N = 3 SE +/- 2.96, N = 3 SE +/- 15.63, N = 3 SE +/- 146.66, N = 3 SE +/- 26.34, N = 3 105851 104810 104663 85543 85613 85416 85689 1. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lrt -laio -lz -lm -lpthread -ldl
FS-Mark Test: 1000 Files, 1MB Size OpenBenchmarking.org Files/s, More Is Better FS-Mark 3.3 Test: 1000 Files, 1MB Size CFQ Noop Deadline mq-deadline Kyber BFQ None 30 60 90 120 150 SE +/- 19.32, N = 6 SE +/- 21.06, N = 6 SE +/- 21.09, N = 6 SE +/- 20.83, N = 6 SE +/- 20.11, N = 6 SE +/- 11.85, N = 6 SE +/- 21.40, N = 6 108.80 112.58 110.87 111.27 111.17 93.40 111.33 1. (CC) gcc options: -static
FS-Mark Test: 5000 Files, 1MB Size, 4 Threads OpenBenchmarking.org Files/s, More Is Better FS-Mark 3.3 Test: 5000 Files, 1MB Size, 4 Threads CFQ Noop Deadline mq-deadline Kyber BFQ None 30 60 90 120 150 SE +/- 1.40, N = 3 SE +/- 1.33, N = 3 SE +/- 3.10, N = 6 SE +/- 4.17, N = 6 SE +/- 4.41, N = 6 SE +/- 7.52, N = 6 SE +/- 5.62, N = 6 115.20 114.13 110.47 107.73 110.27 95.20 100.40 1. (CC) gcc options: -static
FS-Mark Test: 4000 Files, 32 Sub Dirs, 1MB Size OpenBenchmarking.org Files/s, More Is Better FS-Mark 3.3 Test: 4000 Files, 32 Sub Dirs, 1MB Size CFQ Noop Deadline mq-deadline Kyber BFQ None 20 40 60 80 100 SE +/- 1.91, N = 6 SE +/- 3.18, N = 6 SE +/- 2.94, N = 6 SE +/- 1.55, N = 6 SE +/- 3.08, N = 6 SE +/- 4.22, N = 6 SE +/- 6.31, N = 6 73.28 70.52 69.25 74.35 69.30 63.07 65.63 1. (CC) gcc options: -static
BlogBench Test: Write OpenBenchmarking.org Final Score, More Is Better BlogBench 1.0 Test: Write CFQ Noop Deadline mq-deadline Kyber BFQ None 1400 2800 4200 5600 7000 SE +/- 40.99, N = 3 SE +/- 271.32, N = 6 SE +/- 201.64, N = 6 SE +/- 31.62, N = 3 SE +/- 38.48, N = 3 SE +/- 21.09, N = 3 SE +/- 9.07, N = 3 5736 4919 4810 6441 6277 6160 6304 1. (CC) gcc options: -O2 -pthread
Dbench Client Count: 1 OpenBenchmarking.org MB/s, More Is Better Dbench 4.0 Client Count: 1 CFQ Noop Deadline mq-deadline Kyber BFQ None 13 26 39 52 65 SE +/- 0.09, N = 3 SE +/- 0.23, N = 3 SE +/- 0.20, N = 3 SE +/- 0.08, N = 3 SE +/- 0.13, N = 3 SE +/- 0.09, N = 3 SE +/- 0.24, N = 3 56.64 53.64 53.05 53.31 53.11 40.85 53.86 1. (CC) gcc options: -lpopt -O2
Dbench Client Count: 6 OpenBenchmarking.org MB/s, More Is Better Dbench 4.0 Client Count: 6 CFQ Noop Deadline mq-deadline Kyber BFQ None 30 60 90 120 150 SE +/- 0.42, N = 3 SE +/- 0.68, N = 3 SE +/- 0.19, N = 3 SE +/- 0.13, N = 3 SE +/- 0.72, N = 3 SE +/- 0.20, N = 3 SE +/- 0.06, N = 3 141.47 125.90 148.82 141.61 140.54 46.28 142.12 1. (CC) gcc options: -lpopt -O2
IOzone Record Size: 4Kb - File Size: 8GB - Disk Test: Write Performance OpenBenchmarking.org MB/s, More Is Better IOzone 3.405 Record Size: 4Kb - File Size: 8GB - Disk Test: Write Performance CFQ Noop Deadline mq-deadline Kyber BFQ None 30 60 90 120 150 SE +/- 5.51, N = 6 SE +/- 12.91, N = 6 SE +/- 10.56, N = 6 SE +/- 6.45, N = 6 SE +/- 2.88, N = 3 SE +/- 2.23, N = 3 SE +/- 5.54, N = 6 149.96 141.97 135.91 136.84 152.98 150.06 144.28 1. (CC) gcc options: -O3
Threaded I/O Tester Test: Random Write - Size Per Thread: 32MB - Thread Count: 4 OpenBenchmarking.org MB/s, More Is Better Threaded I/O Tester 20170503 Test: Random Write - Size Per Thread: 32MB - Thread Count: 4 CFQ Noop Deadline mq-deadline Kyber BFQ None 7 14 21 28 35 SE +/- 0.02, N = 3 SE +/- 18.44, N = 6 SE +/- 0.11, N = 3 SE +/- 0.21, N = 6 SE +/- 0.31, N = 6 SE +/- 0.01, N = 3 SE +/- 0.16, N = 6 10.29 30.97 10.19 11.45 11.62 3.03 11.80 1. (CC) gcc options: -O2
Compile Bench Test: Initial Create OpenBenchmarking.org MB/s, More Is Better Compile Bench 0.6 Test: Initial Create CFQ Noop Deadline mq-deadline Kyber BFQ None 110 220 330 440 550 SE +/- 9.72, N = 3 SE +/- 8.17, N = 3 SE +/- 6.28, N = 3 SE +/- 6.24, N = 3 SE +/- 14.22, N = 6 SE +/- 13.71, N = 6 SE +/- 12.21, N = 6 501.64 435.78 429.51 493.60 434.90 457.55 439.94
Unpacking The Linux Kernel linux-2.6.32.tar.bz2 OpenBenchmarking.org Seconds, Fewer Is Better Unpacking The Linux Kernel linux-2.6.32.tar.bz2 CFQ Noop Deadline mq-deadline Kyber BFQ None 2 4 6 8 10 SE +/- 0.04, N = 4 SE +/- 0.10, N = 4 SE +/- 0.06, N = 4 SE +/- 0.14, N = 4 SE +/- 0.11, N = 4 SE +/- 0.06, N = 4 SE +/- 0.11, N = 4 8.50 8.67 8.50 8.78 8.63 8.61 8.64
Timed Apache Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed Apache Compilation 2.4.7 Time To Compile CFQ Noop Deadline mq-deadline Kyber BFQ None 6 12 18 24 30 SE +/- 0.05, N = 3 SE +/- 0.04, N = 3 SE +/- 0.07, N = 3 SE +/- 0.03, N = 3 SE +/- 0.07, N = 3 SE +/- 0.07, N = 3 SE +/- 0.06, N = 3 26.31 26.30 26.22 26.19 26.19 26.27 26.28
Timed Linux Kernel Compilation Time To Compile OpenBenchmarking.org Seconds, Fewer Is Better Timed Linux Kernel Compilation 4.9 Time To Compile CFQ Noop Deadline mq-deadline Kyber BFQ None 20 40 60 80 100 SE +/- 0.97, N = 3 SE +/- 0.86, N = 3 SE +/- 1.10, N = 3 SE +/- 1.23, N = 3 SE +/- 0.68, N = 3 SE +/- 1.00, N = 3 SE +/- 1.12, N = 3 95.55 95.47 95.59 94.40 94.72 94.85 94.51
PostgreSQL pgbench Scaling: On-Disk - Test: Normal Load - Mode: Read Write OpenBenchmarking.org TPS, More Is Better PostgreSQL pgbench 9.4.3 Scaling: On-Disk - Test: Normal Load - Mode: Read Write CFQ Noop Deadline mq-deadline Kyber BFQ None 400 800 1200 1600 2000 2077.85 1739.08 1721.32 1555.35 1473.24 1118.30 1322.40 1. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -pthread -lpgcommon -lpgport -lpq -lpthread -lrt -lcrypt -ldl -lm
Redis Test: GET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: GET CFQ Noop Deadline mq-deadline Kyber BFQ None 500K 1000K 1500K 2000K 2500K SE +/- 34341.97, N = 3 SE +/- 3708.42, N = 3 SE +/- 12235.74, N = 3 SE +/- 42115.92, N = 3 SE +/- 17540.46, N = 3 SE +/- 15336.83, N = 3 SE +/- 28854.42, N = 3 2554110.08 2356649.42 2371668.33 2316374.58 2340354.67 2390633.83 2311959.42 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
Redis Test: SET OpenBenchmarking.org Requests Per Second, More Is Better Redis 3.0.1 Test: SET CFQ Noop Deadline mq-deadline Kyber BFQ None 400K 800K 1200K 1600K 2000K SE +/- 28375.23, N = 4 SE +/- 19830.32, N = 3 SE +/- 13355.04, N = 3 SE +/- 9474.84, N = 3 SE +/- 11794.22, N = 3 SE +/- 20968.46, N = 3 SE +/- 34392.71, N = 3 1776776.50 1824142.79 1795531.75 1811693.37 1838387.50 1859203.71 1815065.83 1. (CC) gcc options: -ggdb -rdynamic -lm -pthread -ldl
Apache Benchmark Static Web Page Serving OpenBenchmarking.org Requests Per Second, More Is Better Apache Benchmark 2.4.7 Static Web Page Serving CFQ Noop Deadline mq-deadline Kyber BFQ None 8K 16K 24K 32K 40K SE +/- 122.55, N = 3 SE +/- 225.47, N = 3 SE +/- 185.12, N = 3 SE +/- 379.50, N = 3 SE +/- 67.84, N = 3 SE +/- 323.64, N = 3 SE +/- 175.26, N = 3 39155.92 39201.34 39082.54 39087.98 39443.93 39197.64 39419.51 1. (CC) gcc options: -shared -fPIC -O2 -pthread
Phoronix Test Suite v10.8.4