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&gru&sor.

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

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

FS-Mark

Test: 1000 Files, 1MB Size

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

FS-Mark

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

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

FS-Mark

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

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

BlogBench

Test: Write

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

Compile Bench

Test: Compile

Sandy Bridge + SSDClarksfield + SSDPenryn + HDDOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileCFQNoopDeadline20406080100SE +/- 0.62, N = 3SE +/- 0.53, N = 3SE +/- 1.07, N = 3SE +/- 0.62, N = 3SE +/- 2.82, N = 6SE +/- 0.53, N = 3SE +/- 0.46, N = 3SE +/- 0.18, N = 3SE +/- 0.50, N = 3107.7183.0778.51107.1581.2073.4743.6140.3336.28

Compile Bench

Test: Initial Create

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

Compile Bench

Test: Read Compiled Tree

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

IOzone

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

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

IOzone

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

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

Threaded I/O Tester

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

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

Threaded I/O Tester

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

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

Threaded I/O Tester

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

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

Threaded I/O Tester

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

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

Apache Benchmark

Static Web Page Serving

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

NGINX Benchmark

Static Web Page Serving

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

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

PostgreSQL pgbench

TPC-B Transactions Per Second

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

Timed Linux Kernel Compilation

Time To Compile

Clarksfield + SSDSandy Bridge + SSDPenryn + HDDOpenBenchmarking.orgSeconds, Fewer Is BetterTimed Linux Kernel Compilation 3.1Time To CompileCFQNoopDeadline70140210280350SE +/- 0.55, N = 3SE +/- 0.50, N = 3SE +/- 0.51, N = 3SE +/- 0.73, N = 3SE +/- 0.76, N = 3SE +/- 0.74, N = 3SE +/- 0.83, N = 3SE +/- 0.82, N = 3SE +/- 0.75, N = 3181.39182.00182.07202.35202.81203.12329.42329.46330.01

Timed PHP Compilation

Time To Compile

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


Phoronix Test Suite v10.8.4