Linux 3.4 Kernel File-Systems - XFS, Btrfs, EXT4

Benchmarks of the EXT4, Btrfs, XFS file-systems on an Intel SSD under Ubuntu 12.04 LTS x86_64. Benchmarking of the Btrfs/XFS/EXT4 file-systems with the Linux 3.2, Linux 3.3, and Linux 3.4 development kernels. Testing for a future article on Phoronix.

HTML result view exported from: https://openbenchmarking.org/result/1206088-BY-1205299SU76&sor.

ProcessorMotherboardChipsetMemoryDiskGraphicsAudioNetworkOSKernelDesktopDisplay ServerDisplay DriverOpenGLCompilerFile-SystemScreen ResolutionEXT4BtrfsXFSBtrfs Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.4 UZIntel Core i5-2520M @ 2.50GHz (4 Cores)HP 161CIntel 2nd Generation Core Family DRAM1 x 4096 MB DDR3-1333MHz160GB INTEL SSDSA2M160Intel Sandybridge Mobile (GT2+) (1300MHz)IDT 92HD81B1X5Intel 82579LM Gigabit Connection + Intel Centrino Advanced-N 6205Ubuntu 12.043.2.0-030200-generic (x86_64)Unity 5.10.0X Server 1.11.3intel 2.17.03.0 Mesa 8.0.2GCC 4.6ext41600x9003.3.0-030300-generic (x86_64)3.4.0-999-generic (x86_64)3.2.0-030200-generic (x86_64)btrfs3.3.0-030300-generic (x86_64)3.4.0-999-generic (x86_64)3.2.0-030200-generic (x86_64)xfs3.3.0-030300-generic (x86_64)3.4.0-999-generic (x86_64)Intel Xeon E31230 @ 3.20GHz (8 Cores)Supermicro X9SCL/X9SCMIntel Xeon E3-1200 Family DRAM2 x 4096 MB DDR3-1333MHz20 x 3001GB Western Digital WD30EZRX-00M + 160GB Seagate ST9160314AS + 320GB Western Digital WD3200AAKX-0Matrox s MGA G200eW WPCM450Intel 82579LM Gigabit ConnectionDebian Linux Wheezy/sid3.4.0 (x86_64)btrfsOpenBenchmarking.orgCompiler Details- EXT4: Linux 3.2: --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 -v- EXT4: Linux 3.3: --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 -v- EXT4: Linux 3.4 Git: --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 -v- Btrfs: Linux 3.2: --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 -v- Btrfs: Linux 3.3: --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 -v- Btrfs: Linux 3.4 Git: --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 -v- XFS: Linux 3.2: --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 -v- XFS: Linux 3.3: --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 -v- XFS: Linux 3.4 Git: --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 -v- Btrfs: Linux 3.4 UZ: --build=x86_64-linux-gnu --enable-checking=release --enable-clocale=gnu --enable-languages=c,c++,fortran,objc,obj-c++,go --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=i586 --with-tune=generic -vDisk Details- EXT4: Linux 3.2: CFQ / barrier=1,data=ordered,errors=remount-ro,relatime,rw,user_xattr- EXT4: Linux 3.3: CFQ / barrier=1,data=ordered,errors=remount-ro,relatime,rw,user_xattr- EXT4: Linux 3.4 Git: CFQ / data=ordered,errors=remount-ro,relatime,rw- Btrfs: Linux 3.2: CFQ / nospace_cache,relatime,rw,ssd- Btrfs: Linux 3.3: CFQ / nospace_cache,relatime,rw,ssd- Btrfs: Linux 3.4 Git: CFQ / nospace_cache,relatime,rw,ssd- XFS: Linux 3.2: CFQ / attr2,delaylog,noquota,relatime,rw- XFS: Linux 3.3: CFQ / attr2,noquota,relatime,rw- XFS: Linux 3.4 Git: CFQ / attr2,noquota,relatime,rw- Btrfs: Linux 3.4 UZ: CFQ / attr2,noquota,relatime,rwProcessor Details- EXT4: Linux 3.2, EXT4: Linux 3.3, EXT4: Linux 3.4 Git, Btrfs: Linux 3.2, Btrfs: Linux 3.3, Btrfs: Linux 3.4 Git, XFS: Linux 3.2, XFS: Linux 3.3, XFS: Linux 3.4 Git: Scaling Governor: ondemandSystem Details- EXT4: Linux 3.2: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- EXT4: Linux 3.3: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- EXT4: Linux 3.4 Git: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.2: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.3: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.4 Git: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- XFS: Linux 3.2: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- XFS: Linux 3.3: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- XFS: Linux 3.4 Git: Disk Scheduler: CFQ. Python 2.7.3. Compiz was running on this system.- Btrfs: Linux 3.4 UZ: Disk Scheduler: CFQ. Python 2.7.3rc2.

fs-mark: 1000 Files, 1MB Sizefs-mark: 4000 Files, 32 Sub Dirs, 1MB Sizedbench: 1iozone: 1MB - 8GB - Read Performanceiozone: 4Kb - 8GB - Read Performanceiozone: 1MB - 8GB - Write Performanceiozone: 4Kb - 8GB - Write Performanceiozone: 64Kb - 8GB - Read Performanceiozone: 64Kb - 8GB - Write Performancetiobench: Rand Write - 64MB - 8compilebench: Compilecompilebench: Initial Createapache: Static Web Page ServingEXT4BtrfsXFSBtrfs Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.2 Linux 3.3 Linux 3.4 Git Linux 3.4 UZ90.2778.47192.85233.55254.77100.49100.34254.79100.5390.01106.7098.4520805.2085.6076.70207.46254.87254.75100.39100.41254.73100.5789.54105.6494.7719441.7585.3075.67208.52254.70254.8099.20100.02254.69100.5489.14104.8698.9420564.7773.8762.77161.31223.99225.6899.3499.07225.1399.2289.65105.8858.8119169.1482.7063.30173.53223.83223.6599.4599.37224.7899.5088.56106.3453.9518619.5566.5360.47164.40231.21226.7598.8698.98232.1299.2891.82104.8951.9219679.5890.5781.60159.11205.67242.41101.22100.98242.91101.3587.26104.7787.2619672.2284.6581.50169.94237.01240.18101.86101.62239.49102.1487.66102.7389.4318854.7586.9079.07165.05238.77239.47100.8396.41183.0299.6978.3295.4274.7819964.009.409.534.51136.96137.40165.84165.13135.25163.2055.48379.63171.5729171.23OpenBenchmarking.org

FS-Mark

Test: 1000 Files, 1MB Size

XFSEXT4BtrfsOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 1000 Files, 1MB SizeLinux 3.2Linux 3.4 GitLinux 3.3Linux 3.4 UZ20406080100SE +/- 0.55, N = 3SE +/- 1.48, N = 3SE +/- 1.35, N = 6SE +/- 0.92, N = 3SE +/- 0.89, N = 3SE +/- 1.47, N = 3SE +/- 1.40, N = 3SE +/- 4.63, N = 6SE +/- 3.66, N = 6SE +/- 0.10, N = 390.5786.9084.6590.2785.6085.3082.7073.8766.539.401. (CC) gcc options: -static

FS-Mark

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

XFSEXT4BtrfsOpenBenchmarking.orgFiles/s, More Is BetterFS-Mark 3.3Test: 4000 Files, 32 Sub Dirs, 1MB SizeLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ20406080100SE +/- 0.64, N = 3SE +/- 0.65, N = 3SE +/- 1.16, N = 3SE +/- 0.54, N = 3SE +/- 0.06, N = 3SE +/- 0.20, N = 3SE +/- 0.99, N = 6SE +/- 0.37, N = 3SE +/- 0.15, N = 3SE +/- 0.09, N = 381.6081.5079.0778.4776.7075.6763.3062.7760.479.531. (CC) gcc options: -static

Dbench

Client Count: 1

EXT4BtrfsXFSOpenBenchmarking.orgMB/s, More Is BetterDbench 4.0Client Count: 1Linux 3.4 GitLinux 3.3Linux 3.2Linux 3.4 UZ50100150200250SE +/- 0.11, N = 3SE +/- 0.05, N = 3SE +/- 1.17, N = 3SE +/- 0.13, N = 3SE +/- 0.32, N = 3SE +/- 0.29, N = 3SE +/- 0.02, N = 3SE +/- 0.30, N = 3SE +/- 0.22, N = 3SE +/- 0.50, N = 3208.52207.46192.85173.53164.40161.314.51169.94165.05159.111. (CC) gcc options: -lpopt

IOzone

Record Size: 1MB - File Size: 8GB - Disk Test: Read Performance

EXT4XFSBtrfsOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 1MB - File Size: 8GB - Disk Test: Read PerformanceLinux 3.3Linux 3.4 GitLinux 3.2Linux 3.4 UZ60120180240300SE +/- 0.04, N = 3SE +/- 0.10, N = 3SE +/- 3.53, N = 6SE +/- 0.91, N = 3SE +/- 1.27, N = 3SE +/- 1.27, N = 3SE +/- 4.22, N = 3SE +/- 1.77, N = 3SE +/- 1.66, N = 3SE +/- 0.92, N = 3254.87254.70233.55238.77237.01205.67231.21223.99223.83136.961. (CC) gcc options: -O3

IOzone

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

EXT4XFSBtrfsOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 8GB - Disk Test: Read PerformanceLinux 3.4 GitLinux 3.2Linux 3.3Linux 3.4 UZ60120180240300SE +/- 0.00, N = 3SE +/- 0.02, N = 3SE +/- 0.05, N = 3SE +/- 3.51, N = 3SE +/- 1.53, N = 3SE +/- 0.69, N = 3SE +/- 1.71, N = 3SE +/- 0.44, N = 3SE +/- 0.23, N = 3SE +/- 2.54, N = 3254.80254.77254.75242.41240.18239.47226.75225.68223.65137.401. (CC) gcc options: -O3

IOzone

Record Size: 1MB - File Size: 8GB - Disk Test: Write Performance

BtrfsXFSEXT4OpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 1MB - File Size: 8GB - Disk Test: Write PerformanceLinux 3.4 UZLinux 3.3Linux 3.2Linux 3.4 Git4080120160200SE +/- 3.03, N = 6SE +/- 0.08, N = 3SE +/- 0.21, N = 3SE +/- 0.19, N = 3SE +/- 0.37, N = 3SE +/- 0.31, N = 3SE +/- 1.28, N = 3SE +/- 0.15, N = 3SE +/- 0.07, N = 3SE +/- 1.07, N = 3165.8499.4599.3498.86101.86101.22100.83100.49100.3999.201. (CC) gcc options: -O3

IOzone

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

BtrfsXFSEXT4OpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 4Kb - File Size: 8GB - Disk Test: Write PerformanceLinux 3.4 UZLinux 3.3Linux 3.2Linux 3.4 Git4080120160200SE +/- 1.33, N = 3SE +/- 0.06, N = 3SE +/- 0.23, N = 3SE +/- 0.19, N = 3SE +/- 0.52, N = 3SE +/- 0.69, N = 3SE +/- 1.46, N = 3SE +/- 0.11, N = 3SE +/- 0.14, N = 3SE +/- 0.06, N = 3165.1399.3799.0798.98101.62100.9896.41100.41100.34100.021. (CC) gcc options: -O3

IOzone

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

EXT4XFSBtrfsOpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 64Kb - File Size: 8GB - Disk Test: Read PerformanceLinux 3.2Linux 3.3Linux 3.4 GitLinux 3.4 UZ60120180240300SE +/- 0.04, N = 3SE +/- 0.05, N = 3SE +/- 0.06, N = 3SE +/- 2.52, N = 3SE +/- 2.75, N = 3SE +/- 4.39, N = 6SE +/- 3.95, N = 6SE +/- 0.51, N = 3SE +/- 0.56, N = 3SE +/- 0.49, N = 3254.79254.73254.69242.91239.49183.02232.12225.13224.78135.251. (CC) gcc options: -O3

IOzone

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

BtrfsXFSEXT4OpenBenchmarking.orgMB/s, More Is BetterIOzone 3.405Record Size: 64Kb - File Size: 8GB - Disk Test: Write PerformanceLinux 3.4 UZLinux 3.3Linux 3.2Linux 3.4 Git4080120160200SE +/- 2.57, N = 3SE +/- 0.14, N = 3SE +/- 0.18, N = 3SE +/- 0.22, N = 3SE +/- 0.11, N = 3SE +/- 0.67, N = 3SE +/- 0.49, N = 3SE +/- 0.25, N = 3SE +/- 0.06, N = 3SE +/- 0.10, N = 3163.2099.5099.2899.22102.14101.3599.69100.57100.54100.531. (CC) gcc options: -O3

Threaded I/O Tester

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

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterThreaded I/O Tester 0.3.3Test: Random Write - Size Per Thread: 64MB - Thread Count: 8Linux 3.4 GitLinux 3.2Linux 3.3Linux 3.4 UZ20406080100SE +/- 0.96, N = 4SE +/- 1.66, N = 8SE +/- 1.66, N = 8SE +/- 3.11, N = 8SE +/- 0.20, N = 4SE +/- 0.42, N = 4SE +/- 0.73, N = 4SE +/- 0.39, N = 4SE +/- 0.56, N = 4SE +/- 10.03, N = 891.8289.6588.5655.4890.0189.5489.1487.6687.2678.32

Compile Bench

Test: Compile

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: CompileLinux 3.4 UZLinux 3.2Linux 3.3Linux 3.4 Git80160240320400SE +/- 0.87, N = 3SE +/- 0.21, N = 3SE +/- 0.55, N = 3SE +/- 0.98, N = 3SE +/- 1.22, N = 3SE +/- 0.67, N = 3SE +/- 1.24, N = 3SE +/- 0.61, N = 3SE +/- 1.45, N = 3SE +/- 1.85, N = 3379.63106.34105.88104.89106.70105.64104.86104.77102.7395.42

Compile Bench

Test: Initial Create

BtrfsEXT4XFSOpenBenchmarking.orgMB/s, More Is BetterCompile Bench 0.6Test: Initial CreateLinux 3.4 UZLinux 3.4 GitLinux 3.2Linux 3.34080120160200SE +/- 3.21, N = 3SE +/- 0.49, N = 3SE +/- 0.22, N = 3SE +/- 1.34, N = 3SE +/- 2.26, N = 3SE +/- 1.35, N = 3SE +/- 5.02, N = 3SE +/- 4.10, N = 3SE +/- 0.70, N = 3SE +/- 5.26, N = 3171.5758.8153.9551.9298.9498.4594.7789.4387.2674.78

Apache Benchmark

Static Web Page Serving

BtrfsEXT4XFSOpenBenchmarking.orgRequests Per Second, More Is BetterApache Benchmark 2.2.21Static Web Page ServingLinux 3.4 UZLinux 3.2Linux 3.4 GitLinux 3.36K12K18K24K30KSE +/- 516.29, N = 3SE +/- 83.92, N = 3SE +/- 102.51, N = 3SE +/- 59.43, N = 3SE +/- 231.67, N = 3SE +/- 84.10, N = 3SE +/- 354.48, N = 3SE +/- 77.92, N = 3SE +/- 60.20, N = 3SE +/- 99.43, N = 329171.2319679.5819169.1418619.5520805.2020564.7719441.7519964.0019672.2218854.751. (CC) gcc options: -O2 -pthread -lm -lrt -lcrypt -lpthread -ldl


Phoronix Test Suite v10.8.4