Linux IO Scheduler Testing - CFQ, Deadline, Noop

Testing for a future article on Phoronix.com of different Linux kernel IO schedulers from the Linux 3.4 kernel: CFQ, Noop, and Deadline. Intel Core 2 Duo T9300 and Intel Core i5 Sandy Bridge and Core i7 Clarksfield setups with hard drive and solid-state drives tested.

HTML result view exported from: https://openbenchmarking.org/result/1204132-SU-SCHEDULER98&rdt&gru.

ProcessorMotherboardChipsetMemoryDiskGraphicsAudioNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionPenryn + HDDSandy Bridge + SSDClarksfield + SSD CFQ Noop Deadline CFQ Noop Deadline CFQ Noop DeadlineIntel Core 2 Duo T9300 @ 2.50GHz (2 Cores)LENOVO 6459CTOIntel Mobile PM965/GM965/GL960 + ICH8M-E4096MB100GB Hitachi HTS72201NVIDIA Quadro NVS 140M 128MB (275/302MHz)Analog Devices AD1984Intel 82566MM Gigabit Connection + Intel PRO/WirelessUbuntu 12.043.4.0-999-generic (x86_64)Unity 5.8.0X Server 1.11.3nouveau 0.0.162.1 Mesa 8.0.2 Gallium 0.4GCC 4.6ext41680x1050LLVMpipeNVIDIA Quadro NVS 140M 128MB (275/302MHz)Intel Core i5-2520M @ 2.50GHz (4 Cores)HP 161CIntel 2nd Generation Core Family DRAM160GB INTEL SSDSA2M160Intel Sandybridge Mobile (GT2+)IDT 92HD81B1X5Intel 82579LM Gigabit Connection + Intel Centrino Advanced-N 6205intel 2.17.03.0 Mesa 8.0.21600x900Intel Core i7 720Q @ 1.60GHz (8 Cores)LENOVO 4318CTOIntel Core DMINVIDIA Quadro FX 880M 1024MB (405/324MHz)Conexant CX20585Intel 82577LM Gigabit Connection + Intel Centrino Ultimate-N 6300nouveau 0.0.162.1 Mesa 8.0.2 Gallium 0.4OpenBenchmarking.orgCompiler Details- --build=x86_64-linux-gnu --disable-werror --enable-checking=release --enable-clocale=gnu --enable-gnu-unique-object --enable-languages=c,c++,fortran,objc,obj-c++ --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-nls --enable-objc-gc --enable-plugin --enable-shared --enable-threads=posix --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-arch-32=i686 --with-tune=generic -vDisk Details- Penryn + HDD: CFQ: CFQ / data=ordered,errors=remount-ro,relatime,rw- Penryn + HDD: Noop: NOOP / data=ordered,errors=remount-ro,relatime,rw- Penryn + HDD: Deadline: DEADLINE / data=ordered,errors=remount-ro,relatime,rw- Sandy Bridge + SSD: CFQ: CFQ / data=ordered,errors=remount-ro,relatime,rw- Sandy Bridge + SSD: Noop: NOOP / data=ordered,errors=remount-ro,relatime,rw- Sandy Bridge + SSD: Deadline: DEADLINE / data=ordered,errors=remount-ro,relatime,rw- Clarksfield + SSD: CFQ: CFQ / data=ordered,errors=remount-ro,relatime,rw- Clarksfield + SSD: Noop: NOOP / data=ordered,errors=remount-ro,relatime,rw- Clarksfield + SSD: Deadline: DEADLINE / data=ordered,errors=remount-ro,relatime,rwProcessor Details- Scaling Governor: ondemandSystem Details- Penryn + HDD: CFQ: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Penryn + HDD: Noop: Disk Scheduler: NOOP. Python 2.7.3. Compiz was running on this system.- Penryn + HDD: Deadline: Disk Scheduler: DEADLINE. Python 2.7.3. Compiz was running on this system.- Sandy Bridge + SSD: CFQ: Disk Scheduler: CFQ. Python 2.7.3rc2. Compiz was running on this system.- Sandy Bridge + SSD: Noop: Disk Scheduler: NOOP. Python 2.7.3rc2. Compiz was running on this system.- Sandy Bridge + SSD: Deadline: Disk Scheduler: DEADLINE. Python 2.7.3rc2. Compiz was running on this system.- Clarksfield + SSD: CFQ: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Clarksfield + SSD: Noop: Disk Scheduler: NOOP. Python 2.7.3. Compiz was running on this system.- Clarksfield + SSD: Deadline: Disk Scheduler: DEADLINE. Python 2.7.3. Compiz was running on this system.

fs-mark: 5000 Files, 1MB Size, 4 Threadsfs-mark: 1000 Files, 1MB Sizefs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizefs-mark: 1000 Files, 1MB Size, No Sync/FSyncblogbench: Writecompilebench: Compilecompilebench: Initial Createcompilebench: Read Compiled Treeiozone: 64Kb - 8GB - Read Performanceiozone: 64Kb - 8GB - Write Performancetiobench: Rand Write - 128MB - 8tiobench: Rand Write - 128MB - 16tiobench: Rand Write - 64MB - 16tiobench: Rand Write - 64MB - 8apache: Static Web Page Servingnginx: Static Web Page Servingpostmark: Disk Transaction Performancepgbench: TPC-B Transactions Per Secondbuild-linux-kernel: Time To Compilebuild-php: Time To CompilePenryn + HDDSandy Bridge + SSDClarksfield + SSD CFQ Noop Deadline CFQ Noop Deadline CFQ Noop Deadline36.0017.7718.2068.7092340.3347.6248.6865.4752.362.011.932.742.7411255.1814157.591388112.00329.4691.7535.0316.2317.2268.1078336.2845.7151.1962.4956.011.821.742.202.6811570.6214181.201388112.76329.4291.8936.0719.5320.5768.6088243.6145.6550.4364.3654.041.981.932.762.7011320.6414207.021388112.57330.0191.8099.3376.9077.43145.351531107.71100.69151.59254.84107.0388.3087.3788.4190.3419806.5527044.652420.24202.3557.0196.2076.0775.87152.17307983.0781.34126.82253.71103.3782.2587.9889.5389.9619836.9227426.181643.91202.8157.5896.0075.2775.50146.17279678.5183.86126.27251.9899.3368.5680.2988.8290.2319903.8327437.351863.23203.1257.2697.6079.7379.93148.371496107.1590.65148.68241.73105.8883.4888.2389.5989.1514233.4815722.562357.81181.3952.4294.8078.7078.47146.05327281.2072.24146.23240.68100.3589.6087.4291.1293.6114144.8315747.1625002021.72182.0052.6294.4078.5378.27147.93254673.4769.46183.73240.84101.1792.5592.8092.7994.7014135.5115762.8325001940.40182.0752.59OpenBenchmarking.org

FS-Mark

Test: 5000 Files, 1MB Size, 4 Threads

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 5000 Files, 1MB Size, 4 ThreadsCFQNoopDeadline20406080100SE +/- 0.69, N = 3SE +/- 0.73, N = 6SE +/- 1.17, N = 6SE +/- 0.13, N = 3SE +/- 0.12, N = 3SE +/- 0.40, N = 3SE +/- 0.00, N = 3SE +/- 0.23, N = 3SE +/- 0.23, N = 336.0035.0336.0799.3396.2096.0097.6094.8094.401. (CC) gcc options: -static

FS-Mark

Test: 1000 Files, 1MB Size

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeCFQNoopDeadline20406080100SE +/- 0.03, N = 3SE +/- 0.19, N = 3SE +/- 0.15, N = 3SE +/- 0.75, N = 3SE +/- 0.74, N = 3SE +/- 0.79, N = 3SE +/- 1.02, N = 3SE +/- 0.75, N = 3SE +/- 0.82, N = 317.7716.2319.5376.9076.0775.2779.7378.7078.531. (CC) gcc options: -static

FS-Mark

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

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeCFQNoopDeadline20406080100SE +/- 0.12, N = 3SE +/- 0.67, N = 6SE +/- 0.37, N = 3SE +/- 0.03, N = 3SE +/- 0.20, N = 3SE +/- 0.15, N = 3SE +/- 0.22, N = 3SE +/- 0.19, N = 3SE +/- 0.23, N = 318.2017.2220.5777.4375.8775.5079.9378.4778.271. (CC) gcc options: -static

FS-Mark

Test: 1000 Files, 1MB Size, No Sync/FSync

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB Size, No Sync/FSyncCFQNoopDeadline306090120150SE +/- 1.33, N = 3SE +/- 0.89, N = 3SE +/- 1.10, N = 3SE +/- 2.33, N = 6SE +/- 0.71, N = 3SE +/- 2.71, N = 3SE +/- 2.21, N = 3SE +/- 2.35, N = 4SE +/- 2.25, N = 368.7068.1068.60145.35152.17146.17148.37146.05147.931. (CC) gcc options: -static

BlogBench

Test: Write

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgFinal Score, More Is BetterBlogBench 1.0Test: WriteCFQNoopDeadline7001400210028003500SE +/- 17.23, N = 6SE +/- 12.94, N = 6SE +/- 12.59, N = 5SE +/- 23.59, N = 6SE +/- 173.66, N = 6SE +/- 107.67, N = 6SE +/- 27.43, N = 3SE +/- 99.29, N = 6SE +/- 63.96, N = 69237838821531307927961496327225461. (CC) gcc options: -O2 -pthread

Compile Bench

Test: Compile

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileCFQNoopDeadline20406080100SE +/- 0.18, N = 3SE +/- 0.50, N = 3SE +/- 0.46, N = 3SE +/- 0.62, N = 3SE +/- 0.53, N = 3SE +/- 1.07, N = 3SE +/- 0.62, N = 3SE +/- 2.82, N = 6SE +/- 0.53, N = 340.3336.2843.61107.7183.0778.51107.1581.2073.47

Compile Bench

Test: Initial Create

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateCFQNoopDeadline20406080100SE +/- 0.11, N = 2SE +/- 0.71, N = 3SE +/- 3.02, N = 3SE +/- 1.90, N = 3SE +/- 0.13, N = 3SE +/- 2.04, N = 3SE +/- 3.46, N = 3SE +/- 0.78, N = 3SE +/- 1.84, N = 347.6245.7145.65100.6981.3483.8690.6572.2469.46

Compile Bench

Test: Read Compiled Tree

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Read Compiled TreeCFQNoopDeadline4080120160200SE +/- 0.90, N = 3SE +/- 0.46, N = 3SE +/- 0.91, N = 3SE +/- 1.30, N = 3SE +/- 1.12, N = 3SE +/- 2.50, N = 3SE +/- 1.66, N = 3SE +/- 1.97, N = 3SE +/- 37.24, N = 348.6851.1950.43151.59126.82126.27148.68146.23183.73

IOzone

Record Size: 64Kb - File Size: 8GB - Disk Test: Read Performance

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.347Record Size: 64Kb - File Size: 8GB - Disk Test: Read PerformanceCFQNoopDeadline60120180240300SE +/- 0.26, N = 3SE +/- 0.29, N = 3SE +/- 0.31, N = 3SE +/- 0.03, N = 3SE +/- 0.30, N = 3SE +/- 0.71, N = 3SE +/- 0.04, N = 3SE +/- 0.29, N = 3SE +/- 0.49, N = 365.4762.4964.36254.84253.71251.98241.73240.68240.841. (CC) gcc options: -O3

IOzone

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

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.347Record Size: 64Kb - File Size: 8GB - Disk Test: Write PerformanceCFQNoopDeadline20406080100SE +/- 2.88, N = 6SE +/- 3.28, N = 6SE +/- 3.31, N = 6SE +/- 0.33, N = 3SE +/- 0.06, N = 3SE +/- 1.61, N = 3SE +/- 1.04, N = 3SE +/- 2.03, N = 6SE +/- 0.80, N = 352.3656.0154.04107.03103.3799.33105.88100.35101.171. (CC) gcc options: -O3

Threaded I/O Tester

Test: Random Write - Size Per Thread: 128MB - Thread Count: 8

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 0.3.3Test: Random Write - Size Per Thread: 128MB - Thread Count: 8CFQNoopDeadline20406080100SE +/- 0.01, N = 4SE +/- 0.01, N = 4SE +/- 0.01, N = 4SE +/- 0.48, N = 4SE +/- 5.55, N = 8SE +/- 8.87, N = 8SE +/- 5.33, N = 8SE +/- 2.45, N = 8SE +/- 0.21, N = 42.011.821.9888.3082.2568.5683.4889.6092.55

Threaded I/O Tester

Test: Random Write - Size Per Thread: 128MB - Thread Count: 16

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 0.3.3Test: Random Write - Size Per Thread: 128MB - Thread Count: 16CFQNoopDeadline20406080100SE +/- 0.02, N = 4SE +/- 0.02, N = 4SE +/- 0.02, N = 4SE +/- 0.38, N = 4SE +/- 0.39, N = 4SE +/- 5.12, N = 8SE +/- 0.13, N = 4SE +/- 3.68, N = 8SE +/- 0.20, N = 41.931.741.9387.3787.9880.2988.2387.4292.80

Threaded I/O Tester

Test: Random Write - Size Per Thread: 64MB - Thread Count: 16

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 0.3.3Test: Random Write - Size Per Thread: 64MB - Thread Count: 16CFQNoopDeadline20406080100SE +/- 0.01, N = 4SE +/- 0.05, N = 8SE +/- 0.03, N = 4SE +/- 0.18, N = 4SE +/- 0.23, N = 4SE +/- 0.75, N = 4SE +/- 0.14, N = 4SE +/- 1.30, N = 8SE +/- 1.05, N = 42.742.202.7688.4189.5388.8289.5991.1292.79

Threaded I/O Tester

Test: Random Write - Size Per Thread: 64MB - Thread Count: 8

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 0.3.3Test: Random Write - Size Per Thread: 64MB - Thread Count: 8CFQNoopDeadline20406080100SE +/- 0.03, N = 4SE +/- 0.15, N = 8SE +/- 0.02, N = 4SE +/- 0.46, N = 4SE +/- 0.16, N = 4SE +/- 0.36, N = 4SE +/- 1.13, N = 8SE +/- 0.09, N = 4SE +/- 0.24, N = 42.742.682.7090.3489.9690.2389.1593.6194.70

Apache Benchmark

Static Web Page Serving

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.2.21Static Web Page ServingCFQNoopDeadline4K8K12K16K20KSE +/- 39.53, N = 3SE +/- 26.41, N = 3SE +/- 93.72, N = 3SE +/- 92.62, N = 3SE +/- 174.94, N = 3SE +/- 43.97, N = 3SE +/- 45.95, N = 3SE +/- 81.17, N = 3SE +/- 53.71, N = 311255.1811570.6211320.6419806.5519836.9219903.8314233.4814144.8314135.511. (CC) gcc options: -O2 -pthread -lm -lrt -lcrypt -lpthread -ldl

NGINX Benchmark

Static Web Page Serving

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgRequests Per Second, More Is BetterNGINX Benchmark 1.0.11Static Web Page ServingCFQNoopDeadline6K12K18K24K30KSE +/- 64.83, N = 3SE +/- 18.78, N = 3SE +/- 40.09, N = 3SE +/- 381.12, N = 3SE +/- 368.02, N = 3SE +/- 228.12, N = 3SE +/- 144.33, N = 3SE +/- 119.30, N = 3SE +/- 78.35, N = 314157.5914181.2014207.0227044.6527426.1827437.3515722.5615747.1615762.831. (CC) gcc options: -lpthread -lcrypt -lz

PostMark

Disk Transaction Performance

Penryn + HDDClarksfield + SSDOpenBenchmarking.orgTPS, More Is BetterPostMark 1.51Disk Transaction PerformanceCFQNoopDeadline5001000150020002500SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 513881388138825002500

PostgreSQL pgbench

TPC-B Transactions Per Second

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgTPS, More Is BetterPostgreSQL pgbench 8.4.11TPC-B Transactions Per SecondCFQNoopDeadline5001000150020002500SE +/- 0.29, N = 3SE +/- 0.75, N = 3SE +/- 0.48, N = 3SE +/- 114.10, N = 6SE +/- 21.31, N = 3SE +/- 51.48, N = 6SE +/- 16.17, N = 3SE +/- 80.83, N = 6SE +/- 73.53, N = 6112.00112.76112.572420.241643.911863.232357.812021.721940.401. (CC) gcc options: -O2 -fno-strict-aliasing -fwrapv -lpgport -lpq -lcrypt -ldl -lm

Timed Linux Kernel Compilation

Time To Compile

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 3.1Time To CompileCFQNoopDeadline70140210280350SE +/- 0.82, N = 3SE +/- 0.83, N = 3SE +/- 0.75, N = 3SE +/- 0.73, N = 3SE +/- 0.76, N = 3SE +/- 0.74, N = 3SE +/- 0.55, N = 3SE +/- 0.50, N = 3SE +/- 0.51, N = 3329.46329.42330.01202.35202.81203.12181.39182.00182.07

Timed PHP Compilation

Time To Compile

Penryn + HDDSandy Bridge + SSDClarksfield + SSDOpenBenchmarking.orgSeconds, Fewer Is BetterTimed PHP Compilation 5.2.9Time To CompileCFQNoopDeadline20406080100SE +/- 0.11, N = 3SE +/- 0.16, N = 3SE +/- 0.18, N = 3SE +/- 0.06, N = 3SE +/- 0.76, N = 3SE +/- 0.36, N = 3SE +/- 0.05, N = 3SE +/- 0.01, N = 3SE +/- 0.02, N = 391.7591.8991.8057.0157.5857.2652.4252.6252.591. (CC) gcc options: -O2 -pedantic -ldl -lz -lm


Phoronix Test Suite v10.8.5