I/O Scheduler Testing HDD SSD Linux 4.12

I/O scheduler testing by Michael Larabel for a future article on Phoronix.

HTML result view exported from: https://openbenchmarking.org/result/1707024-TR-1706265TR64&grs&sro.

ProcessorMotherboardChipsetMemoryDiskGraphicsAudioMonitorNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLVulkanCompilerFile-SystemScreen ResolutionOpenCLHDDSSDSSD 840 PRO CFQ Noop Deadline MQ None MQ Kyber MQ BFQ MQ Deadline CFQ Deadline Noop MQ None MQ Deadline MQ Kyber MQ BFQ MQ BFQIntel Core i7-7700K @ 4.50GHz (8 Cores)MSI Z270-A PRO (MS-7A71) v1.0Intel Device 591f + Z27016384MB1000GB Western Digital WD10EZRX-00A + Samsung SSD 950 PRO 256GBMSI AMD Radeon RX 470/480 8192MBRealtek ALC892Acer B286HKRealtek RTL8111/8168/8411Ubuntu 17.044.12.0-999-generic (x86_64) 20170618Unity 7.5.0X Server 1.19.3modesetting 1.19.34.5 Mesa 17.2.0-devel- padoka PPA Gallium 0.4 (LLVM 5.0.0)1.0.42GCC 6.3.0 20170406ext43840x2160128GB ADATA SU800 + Samsung SSD 950 PRO 256GBIntel Core i5-4670K @ 4.30GHz (4 Cores)MSI Z87-G41 PC Mate(MS-7850) v1.0Intel 4th Gen Core DRAM256GB Samsung SSD 840 + 1000GB My Passport 0740MSI AMD POLARIS10 (DRM 3.10.0 / 4.11.8-xanmod12 LLVM 4.0.1) 8192MBRealtek ALC887-VDXG2401Realtek RTL8111/8168/8411 + Qualcomm Atheros AR93xx Wireless4.11.8-xanmod12 (x86_64)4.5 Mesa 17.2.0-devel (LLVM 4.0.1)OpenCL 1.1 Mesa 17.2.0-develGCC 6.3.0 20170406 + Clang 4.0.1-+rc1-1~gd~z + LLVM 4.0.11920x1080OpenBenchmarking.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 -vDisk Details- HDD: CFQ: CFQ / data=ordered,relatime,rw- HDD: Noop: NOOP / data=ordered,relatime,rw- HDD: Deadline: DEADLINE / data=ordered,relatime,rw- HDD: MQ None: NONE / data=ordered,relatime,rw- HDD: MQ Kyber: KYBER / data=ordered,relatime,rw- HDD: MQ BFQ: BFQ / data=ordered,relatime,rw- HDD: MQ Deadline: MQ-DEADLINE / data=ordered,relatime,rw- SSD: CFQ: CFQ / data=ordered,relatime,rw- SSD: Deadline: DEADLINE / data=ordered,relatime,rw- SSD: Noop: NOOP / data=ordered,relatime,rw- SSD: MQ None: NONE / data=ordered,relatime,rw- SSD: MQ Deadline: MQ-DEADLINE / data=ordered,relatime,rw- SSD: MQ Kyber: KYBER / data=ordered,relatime,rw- SSD: MQ BFQ: BFQ / data=ordered,relatime,rw- SSD 840 PRO: MQ BFQ: BFQ / data=ordered,errors=remount-ro,relatime,rwProcessor Details- HDD: CFQ: Scaling Governor: intel_pstate powersave- HDD: Noop: Scaling Governor: intel_pstate powersave- HDD: Deadline: Scaling Governor: intel_pstate powersave- HDD: MQ None: Scaling Governor: intel_pstate powersave- HDD: MQ Kyber: Scaling Governor: intel_pstate powersave- HDD: MQ BFQ: Scaling Governor: intel_pstate powersave- HDD: MQ Deadline: Scaling Governor: intel_pstate powersave- SSD: CFQ: Scaling Governor: intel_pstate powersave- SSD: Deadline: Scaling Governor: intel_pstate powersave- SSD: Noop: Scaling Governor: intel_pstate powersave- SSD: MQ None: Scaling Governor: intel_pstate powersave- SSD: MQ Deadline: Scaling Governor: intel_pstate powersave- SSD: MQ Kyber: Scaling Governor: intel_pstate powersave- SSD: MQ BFQ: Scaling Governor: intel_pstate powersave- SSD 840 PRO: MQ BFQ: Scaling Governor: intel_cpufreq ondemandSystem Details- Python 2.7.13.Environment Details- SSD 840 PRO: MQ BFQ: MESA_NO_ERROR=1 R600_DEBUG=sbcl hyperz llvm forcedma sisched

pgbench: On-Disk - Normal Load - Read Writedbench: 6compilebench: Initial Createiozone: 4Kb - 8GB - Write Performancefio: Seq Write - Libaio - No - Yes - 4KB - Default Test Directoryfio: Seq Read - Libaio - No - Yes - 4KB - Default Test Directorysqlite: Default Test DirectoryHDDSSDSSD 840 PRO CFQ Noop Deadline MQ None MQ Kyber MQ BFQ MQ Deadline CFQ Deadline Noop MQ None MQ Deadline MQ Kyber MQ BFQ MQ BFQ71.6538.22515.0570.1872.9178.82341.7071.8340.74498.71142.0867.7378.71338.0466.3838.89486.2569.7567.7881.86337.5673.7838.03547.9968.6235.2946.53336.2376.3937.80534.1464.5720.9341.58338.7834.0621.85536.1966.5521.1546.49818.4061.8038.73544.0674.1922.3043.66337.46339.78501.1046.29258.47448.2539.62854.76334.04514.2841.10231.40402.5339.76666.10331.68531.9049.09272.82392.3737.81795.14335.27531.6941.94188.06210.6938.32790.92332.99552.7248.91170.61283.5038.53880.18334.64588.0149.54145.41234.9738.50768.9256.17560.9851.20229.41290.1151.151177.6652.63537.35349.13373.93455.3675.57OpenBenchmarking.org

PostgreSQL pgbench

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

HDDSSD 840 PROSSDOpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 9.6.3Scaling: On-Disk - Test: Normal Load - Mode: Read WriteCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop30060090012001500SE +/- 3.16, N = 371.6566.3834.0661.8076.3973.7871.831177.66854.76768.92790.92880.18795.14666.101. (CC) gcc options: -fno-strict-aliasing -fwrapv -O2 -fpic -lpgcommon -lpgport -lrt -lcrypt -ldl -lm

Dbench

Client Count: 6

HDDSSD 840 PROSSDOpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 6CFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop70140210280350SE +/- 0.74, N = 3SE +/- 0.31, N = 3SE +/- 3.69, N = 6SE +/- 0.19, N = 3SE +/- 0.27, N = 3SE +/- 0.16, N = 3SE +/- 0.45, N = 3SE +/- 0.46, N = 3SE +/- 2.66, N = 3SE +/- 1.51, N = 3SE +/- 0.62, N = 3SE +/- 3.70, N = 3SE +/- 0.92, N = 3SE +/- 4.65, N = 3SE +/- 1.61, N = 338.2238.8921.8538.7337.8038.0340.7452.63339.78334.0456.17332.99334.64335.27331.681. (CC) gcc options: -lpopt -O2

Compile Bench

Test: Initial Create

HDDSSD 840 PROSSDOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop130260390520650SE +/- 25.26, N = 6SE +/- 25.27, N = 6SE +/- 23.07, N = 6SE +/- 6.02, N = 3SE +/- 25.14, N = 6SE +/- 20.19, N = 6SE +/- 18.12, N = 6SE +/- 7.69, N = 5SE +/- 8.17, N = 4SE +/- 9.64, N = 3SE +/- 13.74, N = 6SE +/- 17.66, N = 6SE +/- 10.08, N = 3SE +/- 14.76, N = 6SE +/- 17.28, N = 6515.05486.25536.19544.06534.14547.99498.71537.35501.10514.28560.98552.72588.01531.69531.90

IOzone

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

HDDSSD 840 PROSSDOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 8GB - Disk Test: Write PerformanceCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop80160240320400SE +/- 0.75, N = 3SE +/- 0.93, N = 3SE +/- 0.87, N = 3SE +/- 0.49, N = 3SE +/- 0.86, N = 3SE +/- 0.81, N = 3SE +/- 0.54, N = 3SE +/- 45.82, N = 6SE +/- 3.07, N = 6SE +/- 2.13, N = 6SE +/- 1.44, N = 6SE +/- 3.17, N = 6SE +/- 3.19, N = 6SE +/- 3.14, N = 6SE +/- 2.75, N = 670.1869.7566.5574.1964.5768.62142.08349.1346.2941.1051.2048.9149.5441.9449.091. (CC) gcc options: -O3

Flexible IO Tester

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

HDDSSD 840 PROSSDOpenBenchmarking.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 DirectoryCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop20K40K60K80K100KSE +/- 329.04, N = 3SE +/- 245.71, N = 3SE +/- 26.18, N = 3SE +/- 138.39, N = 6SE +/- 34.02, N = 3SE +/- 161.26, N = 6SE +/- 428.90, N = 6SE +/- 995.18, N = 3SE +/- 4632.36, N = 6SE +/- 4254.36, N = 6SE +/- 6652.20, N = 6SE +/- 5587.60, N = 6SE +/- 5290.73, N = 6SE +/- 8230.37, N = 6SE +/- 4907.39, N = 6182231694252835572522988181692993479646155784757350426503634847011682001. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lnuma -libverbs -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

HDDSSD 840 PROSSDOpenBenchmarking.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 DirectoryCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop80160240320400SE +/- 1.32, N = 3SE +/- 0.98, N = 3SE +/- 0.10, N = 3SE +/- 0.55, N = 6SE +/- 0.14, N = 3SE +/- 0.65, N = 6SE +/- 1.72, N = 6SE +/- 3.98, N = 3SE +/- 18.53, N = 6SE +/- 17.02, N = 6SE +/- 26.61, N = 6SE +/- 22.35, N = 6SE +/- 21.16, N = 6SE +/- 32.92, N = 6SE +/- 19.63, N = 672.9167.7821.1522.3020.9335.2967.73373.93258.47231.40229.41170.61145.41188.06272.821. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

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

HDDSSD 840 PROSSDOpenBenchmarking.orgIOPS, More Is BetterFlexible IO Tester 2.1.13Type: Sequential Read - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop20K40K60K80K100KSE +/- 105.30, N = 3SE +/- 108.91, N = 3SE +/- 502.38, N = 6SE +/- 423.30, N = 6SE +/- 286.16, N = 6SE +/- 41.20, N = 3SE +/- 321.92, N = 3SE +/- 881.87, N = 3SE +/- 168.96, N = 3SE +/- 140.58, N = 3SE +/- 269.62, N = 3SE +/- 121.94, N = 3SE +/- 8929.58, N = 6SE +/- 477.54, N = 3SE +/- 56.40, N = 31970120461116191091110391116281967511383611205910062872524708725873952670980901. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

Flexible IO Tester

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

HDDSSD 840 PROSSDOpenBenchmarking.orgMB/s, More Is BetterFlexible IO Tester 2.1.13Type: Sequential Read - IO Engine: Libaio - Buffered: No - Direct: Yes - Block Size: 4KB - Disk Target: Default Test DirectoryCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop100200300400500SE +/- 0.42, N = 3SE +/- 0.44, N = 3SE +/- 2.01, N = 6SE +/- 1.69, N = 6SE +/- 1.14, N = 6SE +/- 0.17, N = 3SE +/- 1.29, N = 3SE +/- 3.53, N = 3SE +/- 0.68, N = 3SE +/- 0.56, N = 3SE +/- 1.08, N = 3SE +/- 0.49, N = 3SE +/- 35.72, N = 6SE +/- 1.91, N = 3SE +/- 0.23, N = 378.8281.8646.4943.6641.5846.5378.71455.36448.25402.53290.11283.50234.97210.69392.371. (CC) gcc options: -rdynamic -std=gnu99 -O3 -ffast-math -include -lnuma -libverbs -lrt -laio -lz -lm -lpthread -ldl

SQLite

Test Target: Default Test Directory

HDDSSD 840 PROSSDOpenBenchmarking.orgSeconds, Fewer Is BetterSQLite 3.8.10.2Test Target: Default Test DirectoryCFQDeadlineMQ BFQMQ DeadlineMQ KyberMQ NoneNoop2004006008001000SE +/- 4.99, N = 5SE +/- 0.37, N = 3SE +/- 4.45, N = 3SE +/- 0.46, N = 3SE +/- 1.44, N = 3SE +/- 0.50, N = 3SE +/- 1.10, N = 3SE +/- 1.10, N = 5SE +/- 3.10, N = 6SE +/- 3.77, N = 6SE +/- 4.60, N = 6SE +/- 2.04, N = 6SE +/- 1.40, N = 6SE +/- 2.80, N = 6SE +/- 2.15, N = 6341.70337.56818.40337.46338.78336.23338.0475.5739.6239.7651.1538.5338.5038.3237.811. (CC) gcc options: -O2 -ldl -lpthread


Phoronix Test Suite v10.8.4