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&grs&sro.

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.

tiobench: Rand Write - 128MB - 16tiobench: Rand Write - 64MB - 16fs-mark: 1000 Files, 1MB Sizefs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizeiozone: 64Kb - 8GB - Read Performancetiobench: Rand Write - 64MB - 8compilebench: Read Compiled Treecompilebench: Compilefs-mark: 5000 Files, 1MB Size, 4 Threadsfs-mark: 1000 Files, 1MB Size, No Sync/FSynccompilebench: Initial Createnginx: Static Web Page Servingbuild-linux-kernel: Time To Compilepostmark: Disk Transaction Performanceapache: Static Web Page Servingbuild-php: Time To Compilepgbench: TPC-B Transactions Per Secondtiobench: Rand Write - 128MB - 8iozone: 64Kb - 8GB - Write Performanceblogbench: WritePenryn + HDDSandy Bridge + SSDClarksfield + SSD CFQ Noop Deadline CFQ Noop Deadline CFQ Noop Deadline1.932.7417.7718.2065.472.7448.6840.3336.0068.7047.6214157.59329.46138811255.1891.75112.002.0152.369231.742.2016.2317.2262.492.6851.1936.2835.0368.1045.7114181.20329.42138811570.6291.89112.761.8256.017831.932.7619.5320.5764.362.7050.4343.6136.0768.6045.6514207.02330.01138811320.6491.80112.571.9854.0488287.3788.4176.9077.43254.8490.34151.59107.7199.33145.35100.6927044.65202.3519806.5557.012420.2488.30107.03153187.9889.5376.0775.87253.7189.96126.8283.0796.20152.1781.3427426.18202.8119836.9257.581643.9182.25103.37307980.2988.8275.2775.50251.9890.23126.2778.5196.00146.1783.8627437.35203.1219903.8357.261863.2368.5699.33279688.2389.5979.7379.93241.7389.15148.68107.1597.60148.3790.6515722.56181.3914233.4852.422357.8183.48105.88149687.4291.1278.7078.47240.6893.61146.2381.2094.80146.0572.2415747.16182.00250014144.8352.622021.7289.60100.35327292.8092.7978.5378.27240.8494.70183.7373.4794.40147.9369.4615762.83182.07250014135.5152.591940.4092.55101.172546OpenBenchmarking.org

Threaded I/O Tester

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

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

Threaded I/O Tester

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

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

FS-Mark

Test: 1000 Files, 1MB Size

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

FS-Mark

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

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

IOzone

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

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

Threaded I/O Tester

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

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

Compile Bench

Test: Read Compiled Tree

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

Compile Bench

Test: Compile

Clarksfield + SSDPenryn + HDDSandy Bridge + SSDOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileCFQDeadlineNoop20406080100SE +/- 0.62, N = 3SE +/- 0.53, N = 3SE +/- 2.82, N = 6SE +/- 0.18, N = 3SE +/- 0.46, N = 3SE +/- 0.50, N = 3SE +/- 0.62, N = 3SE +/- 1.07, N = 3SE +/- 0.53, N = 3107.1573.4781.2040.3343.6136.28107.7178.5183.07

FS-Mark

Test: 5000 Files, 1MB Size, 4 Threads

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

FS-Mark

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

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

Compile Bench

Test: Initial Create

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

NGINX Benchmark

Static Web Page Serving

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

Timed Linux Kernel Compilation

Time To Compile

Clarksfield + SSDPenryn + HDDSandy Bridge + SSDOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 3.1Time To CompileCFQDeadlineNoop70140210280350SE +/- 0.55, N = 3SE +/- 0.51, N = 3SE +/- 0.50, N = 3SE +/- 0.82, N = 3SE +/- 0.75, N = 3SE +/- 0.83, N = 3SE +/- 0.73, N = 3SE +/- 0.74, N = 3SE +/- 0.76, N = 3181.39182.07182.00329.46330.01329.42202.35203.12202.81

PostMark

Disk Transaction Performance

Clarksfield + SSDPenryn + HDDOpenBenchmarking.orgTPS, More Is BetterPostMark 1.51Disk Transaction PerformanceDeadlineNoopCFQ5001000150020002500SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 5SE +/- 0.00, N = 525002500138813881388

Apache Benchmark

Static Web Page Serving

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

Timed PHP Compilation

Time To Compile

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

PostgreSQL pgbench

TPC-B Transactions Per Second

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

Threaded I/O Tester

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

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

IOzone

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

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

BlogBench

Test: Write

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


Phoronix Test Suite v10.8.4